Methods, systems, and programming for computer display of images, text, and/or digital content

ABSTRACT

A bitmap of a shape, such as a font, can be subpixel optimized by producing for each of a display&#39;s subpixels a coverage value representing the percent of its area covered by the shape being represented and by distributing, to prevent color imbalance, an amount of a given subpixel&#39;s coverage value to nearby subpixels of different colors as a function of the percent of the given subpixel&#39;s coverage value that causes color imbalance. Web pages can be displayed with scaled-down and subpixel optimized images. A given layout of a Web page can be displayed at each of at least two different selected scale factors, with the font bitmaps used to represent characters in the display at each scale factor having their shape and pixel alignment selected to improve readability for the particular pixel size at which they are displayed at each such scale factor.

RELATED APPLICATIONS

This application is a continuation-in-part of and claims priority under35 U.S.C. § 119(e) of the following co-pending U.S. provisionalapplications:

-   -   BIT01-1PRO1        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Browsing The            Web Or Viewing Other Sorts of Media or Computer Output        -   Ser. No.: 60/288,287        -   FILING DATE: May 2, 2001    -   BIT01-1PRO-A        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Producing and            Displaying Subpixel-Optimized Font Bitmaps Using Non-Linear            Color Balancings        -   Ser. No.: 60/296,275        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PR0-A2        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Producing and            Displaying Subpixel-Optimized Font Bitmaps Using Non-Linear            Color Balancings        -   Ser. No.: 60/322,922        -   FILING DATE: Sep. 17, 2001    -   BIT01-1PRO-B        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Producing And            Displaying Subpixel-Optimized Images and Digital Content            Including Such Images        -   Ser. No.: 60/296,237        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-C        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Displaying            Media Including Both Images And Text In A Subpixel-Optimized            Manner        -   Ser. No.: 60/296,274        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-D        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Displaying            Media Including Text In A Scaled And/Or Subpixel-Optimized            Manner        -   Ser. No.: 60/296,284        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-E        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Displaying            Media In A Scaled-Down Manner        -   Ser. No.: 60/296,231        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-F        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming For Displaying            Media Scaled-Down By A Variable Scale Factor        -   Ser. No.: 60/296,224        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-G        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming Involved In            Preparing Media For Display On One Computer And Displaying            It On Another Computer        -   Ser. No.: 60/296,426        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-H        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming Involved In            Displaying Text And/Or Images In A Scaled Down Or Subpixel            Optimized Manner        -   Ser. No.: 60/296,273        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-I        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming Involved In The            Supply Of Fonts Over A Computer Network        -   Ser. No.: 60/296,283        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-J        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming Involved In Display            Of Subpixel Optimized GUI And/Or Multimedia Elements        -   Ser. No.: 60/296,281        -   FILING DATE: Jun. 5, 2001    -   BIT01-1PRO-K        -   APPLICANT: Sampo J. Kaasila et al.        -   TITLE: Methods, Systems, and Programming Involved In Display            Of Digital Content In An Orientation Different Than An            Orientation At Which Operating System Can Display        -   Ser. No.: 60/296,327        -   FILING DATE: Jun. 5, 2001

FIELD OF THE INVENTION

The present invention relates to methods, systems, and programming forcomputer display of images, text, and/or digital content.

BACKGROUND OF THE INVENTION

This patent application has many aspects that relate to the optimizationof using computing devices with small or low resolution screens, such ashandheld computers, cellphone computers, or computers with wrist or headmounted displays. A good portion of this optimizing has been done toimprove the use of such small screen devices for browsing the World WideWeb or similar media, although many of its features can be used whenviewing other types of screen content.

Another portion of this optimization has been focused on improving theability to browse such media through relatively low bandwidth links,such as those that would be found on current wireless links. It shouldbe appreciated, however, that many aspects of the inventions disclosedin this application are not limited to use for these purpose.

For example, some of the features that are designed to make it easierfor users to view portions of Web pages at a larger size could be usedto make reading the Web on traditional computers easier on the eye oreasier to read at greater distances.

At the time this application is being filed there are multiple handheldcomputers that have approximately 240 by 320 pixel screens that measureapproximately four inches diagonally. These include the Compaq iPaqH3650 Pocket PC, the Casio Cassiopeia, and the Hewlett-Packard Jornado525. Unfortunately such a resolution would be too low to display mostcurrent Web pages on. Currently most Web pages can be viewed with640×480 resolution screen (although a few web sites cannot even beproperly viewed at this resolution). It would be desirable to be able toview most web pages with such hand held devices.

The manufacturers of liquid crystal displays are now capable of-makingscreens having substantially higher resolutions than those that arecurrently on the market. Makers of organic LED displays claim they canachieve even higher resolutions. This means that a four inch diagonalscreen of the size currently in the handheld computers listed abovecould have a resolution of 480 by 640 or higher. Although such screenswould provide an acceptable resolution for many web sites, even a highereffective resolution would be desirable to view many web pages.

In addition, in order for such screens to be seen at a relatively highresolution, they would have to be held close to a user's eyes. Althoughthis might be satisfactory for many applications, users might often findit tiring or inconvenient to constantly hold a handheld computer closeone eyes.

Such advances in display resolution would also mean that a 320 by 240pixel screens could be made with a diagonal length of two inches orless. Such a display would be about the size of the display commonlycontained in many present-day cellphones, and could also fit onto awristwatch. Such displays would make many forms of applicationscurrently used on hand held computers available on cellphones,wristwatches or other similarly small format computers. Unfortunatelythey would have the problem of both having a relatively low resolutionthat would tend to make it difficult for them to view most web pages,and of being so physically small that for a user to be able to see theirresolution they would have to be held very close to the user's eyes.Again, holding such a device close to a user's eyes might besatisfactory at certain times, but over long periods of time, or incertain situations it might be inconvenient.

Currently there are several companies that provide head mounted displaysthat enable a person to see an image of a computer screen, either as aresult of light reflected into the user's eyes through a device thatappears somewhat like a pair of glasses, or from a mirror placed above,below, or off to the side of the user's eyes. To make it easy for userto interact with their surroundings while using such a head mounteddisplay, it is often desirable to have such projected computer screenstake up a relatively small portion of the user's optic field. Thus,users of such displays might face many of the same problems as wouldusers of small handheld screens.

Some aspects of the invention relates to methods for optimizing thebrowsing of the Web or application screen output on a computer withrelatively limited computational power, memory, or bandwidth to theInternet. For example, currently a standard Web browser of the type usedin most desktop and laptop computers requires many megabytes of memoryand a relatively large amount of computational power. They also requirea connection to the Internet having at least the speed of a high-speedmodem to work effectively with a type of Web content contained in manyof the World Wide Web's more frequently used Web pages. Unfortunately,many handheld computers either do not have the storage or computationalcapacity to be able to effectively view many such web pages. Also mostcommonly available wireless systems have a bandwidth that issubstantially below that which would be desirable for viewing many Webpages. As a result of these factors, one of the focus of some of theinnovations contained in this application relate to methods for enablingcomputers with limited storage, commutation, or bandwidth to betterbrowse the World Wide Web or similar media.

SUMMARY OF THE INVENTION

Summary of the Invention Re Innovation Group A

According to a first aspect of the present invention a method ofproducing a sub-pixel resolution representation of a shape suitable fordisplay on a sub-pixel addressed screen, that is a screen having pixelscomprised of separately-addressable, differently-colored sub-pixels, isprovided. The method comprises producing a scaled subpixel optimizedimage of a bitmap image by associating a luminosity value with eachsub-pixel of the scaled image as a function of the percent of the areaof the sub-pixel's area in the image that is covered by the shape and acolor balancing function designed to distribute a portion of asub-pixel's luminosity value that otherwise would cause color imbalanceto nearby sub-pixels of different colors. The percent of a subpixel'sluminosity values that is so distributed is a function of the percent ofthe subpixel's luminosity value which causes color imbalance.

In some embodiments of this first aspect of the invention the shape ofwhich the subpixel optimized image is made is a font.

In some embodiments of the first aspect of the invention the sub-pixelresolution bitmap image is created to represent an image of a shapewhich can be shown with a selected foreground color and a selectedbackground color. The luminosity value calculated for an individualsub-pixel is an alpha value. This alpha value determines the relativeextent to which its associated sub-pixel in an image having a foregroundand a background color will have the component color value of theforeground color and/or of the background color that corresponds to thesub-pixel's color.

Thus, in such an embodiment, each of the three alpha values associatedwith a given pixel's three subpixels represents the extent to which thesub-pixel associated with that alpha value should derive its luminosityfrom a foreground color or a background color. The luminosity of asub-pixel of a given color can be determined by the luminosity of thesubpixel's color in the foreground color times the subpixel's alphavalue plus the value of that subpixel's color in the background colortimes one minus the subpixel's alpha value.

According to a second aspect of the present invention a method ofproducing a sub-pixel resolution image suitable for display in an imagearea of a sub-pixel addressed screen where the image is of a shapedefined at a resolution higher than the resolution of sub-pixels withthe image area, is provided. The method determines a coverage value foreach sub-pixel associated with the given pixel in the image area, whichsub-pixel coverage value corresponds to the percentage of the sub-pixelwhich is covered by the shape. The method determines a pixel coveragevalue for the given pixel that is a function of the coverage valuescalculated for one or more of the sub-pixels with the given pixel. Themethod adds to a luminosity value calculated for each sub-pixel of thegiven pixel a value corresponding to the given pixel's coverage value.For each sub-pixel in the given pixel the method (a) determines adifferential coverage value for each sub-pixel corresponding to thedifference between the sub-pixel's coverage value and the given pixel'scoverage value and (b) adds to the luminosity value calculated for eachgiven sub-pixel and one or more nearby sub-pixels a value correspondingto a portion of the given sub-pixel's differential coverage value, whereat least some of the nearby sub-pixels are located outside of the givensub-pixel's pixel.

Traditional techniques for producing sub-pixel optimized images ofcharacters and other shapes can be used to determine a coverage valuefor a sub-pixel as a function of the extent to which the arearepresented by the sub-pixel in the character image is covered by thecharacter's shape.

In the prior art systems color balance distributions have been performedwith a center-weighted filter function, which, for example, distributesall of the luminosity associated with the coverage associated with eachsub-pixel over an area of five sub-pixels centered around the givensub-pixel itself. The given sub-pixel gets the greatest portion of thisluminosity, the two sub-pixels on either side of it receive a lesseramount, and the two sub-pixels on either side of them receive an evenlesser amount. Such a distribution of all luminosity values does a goodjob of achieving color balance, but it produces a relatively largeblurring of the spatial resolution achieved by the sub-pixel resolution.

The advantage of this second aspect of the invention is that it reducesthe amount of luminosity values distributed for color balance purposesto approximately only that amount which is necessary to achieve colorbalance, and, thus, increases the clarity of sub pixel optimized images.

In some embodiments of this second aspect of the invention the shape ofwhich the sub-pixel optimized image is made is a font.

In some embodiments of the second aspect of the invention the pixelcoverage values used can be maximum, minimum, average, or some otherfunction of the value of one or more of a pixel's sub-pixels. In someembodiments the pixel coverage value used in the non-linear scheme isthe minimum. If the luminosity values that are added to a sub-pixel bythe color balance filter would add up to more than the maximumluminosity of that sub-pixel, the sub-pixel's luminosity will be set toits maximum value.

In some embodiments of the second aspect of the invention the additionto the luminosity value calculated for each given sub-pixel and one ormore nearby sub-pixels includes adding a larger value to the givensub-pixel than to the nearby sub-pixels.

In some embodiments of the second aspect of the invention the additionto the luminosity value calculated for each given sub-pixel and one ormore nearby sub-pixels includes using a distribution filter thatdetermines the size of the portion of the given sub-pixel's differentialcoverage value for which a corresponding value is added to theluminosity value calculated for the given sub-pixel and each of thenearby sub-pixels.

In some embodiments different distribution filters are used forsub-pixels of different colors. This is done because sub-pixels ofdifferent colors make different degrees of visual impression upon theeye. The human eye sees a green sub-pixel much better than a red pixel,and a red pixel much better than a blue pixel. As a result, the use ofdifferent color balance filters is appropriate to achieve perceivedcolor balance between such different colors.

In some embodiments some of the distribution filters are asymmetrical,meaning that they distribute more to the luminosity values of nearbysub-pixels on one side of the given sub-pixel than to those of nearbysub-pixels on the other side of the given sub-pixel. Although adifferent filter could be used for each different color in someembodiments, in an RGB display reasonable results can be obtained byusing the same symmetrical center-weighted distribution function fordistributing portions of the coverage value of red and green pixels, andan asymmetrical distribution filter for blue that tends to distributemost of the color intensity not distributed to its blue sub-pixel tosub-pixels to the blue pixel's left.

In some embodiments of the second aspect of the invention the sub-pixelresolution bitmap image is created to represent an image of a shapewhich can be shown with a selected foreground color and a selectedbackground color. The luminosity value calculated for an individualsub-pixel is an alpha value. This alpha value determines the relativeextent to which its associated sub-pixel in an image having a foregroundand a background color will have the component color value of theforeground color and/or of the background color that corresponds to thesub-pixel's color.

Some embodiments of the second aspect of the invention calculate theluminosity values for each sub-pixel of a given pixel which values areused to define a calculated color value which can be any one of a firstnumber of values. Each calculated color value is mapped into acorresponding one of a second number of palette color values, where thesecond number is smaller than the first number and individual pixels inthe image are represented by a palette color value into which itscalculated color value has been mapped.

In some such embodiments a plurality of the palette color values areselected as a function of the frequency with which the given calculatedcolor values occur in a plurality of the different images created by themethod. A relatively large percentage of the combinations of colorswhich define the three-colored alpha values calculated for pixelsactually used in sub-pixel optimized fonts fall into a relatively smallportion of the potential color space. This has allowed the definition ofa palette of colors representing most such sub-pixel alpha values thathas a relatively limited number of entries. This decreases the number ofbits required to define each pixel in an alpha value representation of asub-pixel optimized font. This, in turn, substantially decreases theamount of bandwidth needed to download sub-pixel optimized bitmaps foruse by those systems of the present invention in which such font bitmapsare downloaded.

In some embodiments non-gray calculated colors that differ in certainways from any palette color are mapped into a substantially gray palettecolor. A plurality of gray scale values has been included in the colorpalette. The system maps into the closest grayscale value anythree-colored alpha values calculated for pixels when creating sub-pixeloptimized images which do not come sufficiently close in color space toany of the non-grayscale values in the palette. In these relatively fewcases, the effect is much as if whole-pixel anti-aliasing had been used.In cases where bandwidth and/or memory is tight, this occasionalreplacement of sub-pixel optimized resolution with traditionalanti-aliasing can be a desirable tradeoff.

Some aspects of the present invention relate to the method of displayingfonts created by the above process in the display of digital content.

Some aspects of the present invention relate to the method ofdownloading fonts created by the above process in the display of text.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Because of the rush with which this application has been filed, so as toenable the assignee of its inventions to more rapidly attempt to marketits innovating, the claims are represented below in the form of a claimoutline which has not been fully completed.

In each this outline an invention is described by a heading in allcapitalized text. For some such inventions a more detailed and/oraccurate description is provided by text corresponding to possible claimlanguage. This claim language text is not capitalized. In the claimoutline, indentation is used to indicate claim dependence, with claimsdepending from the claim under which they are indented. Thus, forexample, if a given claim recites “a method as in claim X” the claim thegiven claim depends from is the nearest claim above the given claim inthe outline that is outdented (i.e., one heading level to the left)relative to the given claim.

Summary of the Invention Re Innovation Group B

According to a first aspect of the present invention method ofdisplaying digital content including text and/or images is provided. Thedigital content is represented by a mark-up language including tagswhich identify images contained in the content. The display is performedon a subpixel addressable screen having pixels comprised of separatelyaddressable differently colored sub pixels. The method comprises thefollowing steps. The digital content is accessed, including its images,from a device in which it is stored or from programming which generatesit dynamically; and displaying on the screen one or more of suchaccessed images at a first pixel scale in which the luminosity of eachdifferently colored sub-pixel of a given pixel is derived from adifferent area of the same image at a second, higher resolution, pixelscale.

In some embodiments of this first aspect of the invention the accessingof such digital content is performed over a computer network.

In some such embodiments the accessing of such digital content isperformed over the Internet.

In some embodiments of this aspect of the invention the digital contentincludes web pages.

In some embodiments the screen is part of a browser computer capable ofbrowsing digital content. The browser computer includes browserprogramming which responds to user input requesting a given portion ofdigital content by requesting that content from a another entity, eithera storage device, another computer, or other programming running on thebrowser computer. In response to the request from the browserprogramming, the digital content is read from memory or dynamicallygenerated at a resolution higher than the first scale. After the imagehas been read from memory or dynamically generated in response to theuser request, the image is scaled down to be first scale and theluminosities of differently colored sub-pixels are derived from adifferent area of the same image at the second, higher resolution,scale.

In some such dynamic scaling embodiments the image is read from memoryor dynamically generated on a server computer system. The scaling downof an image to the first scale is performed by the server computersystem and

the scaled down image is downloaded to the browser, which then displaysthe scaled down image.

In some dynamic scaling embodiments the browser computer communicatesthe user request over a computer network to a proxy server. The proxyserver computer communicates the user request over an internetwork to aserver computer system which stores or dynamically generates an image tobe read. The server computer system sends one of the images to the proxyserver. The scaling down of the image to the first scale is performed bythe proxy server. The proxy server downloads the scaled down image tothe browser, which then displays the scaled down image.

In some dynamic scaling embodiments the scaling down of an image to thefirst scale is performed by the browser computer, which then displaysthe scaled down image.

Some dynamic scaling embodiments allow a user of the browser computer toselect one from a plurality of scale factors. The browser computercommunicates the selected scale factor to the process which scales downan image read from storage and causes the scaling process to scale downand subpixel optimize the image by a horizontal and vertical scalefactor which varies as a function of the selected scale factor.

In some such embodiments in which the user can select the scaling factorthe serving computer is a remote computer relative to the browser andthe scaling process is on the remote computer.

In some embodiments in which the user can select the scaling factor theallowing of the user to select from one of a plurality of scale factorscan be performed after a given image has been read from storage ordynamically generated. It is then scaled down to the first scale andsubpixel optimized, and displayed, so as to cause the given image to bescaled, subpixel optimized, and displayed at a second, different scalefactor.

In some embodiments of the first aspect of the invention the luminosityof each differently colored sub-pixel of a given pixel is determined bydefining for the sub-pixel a plurality of coverage lines which fitwithin a window in a higher resolution representation of the image,which window is different for each sub-pixel of a given pixel. Thelength of each coverage line which corresponds to given pixel in thehigher resolution image is calculated. The luminosity of the sub-pixelis determined as a function of the length of each coverage line whichcorresponds to each higher resolution pixel and the respectiveluminosity in the sub-pixel's color of that higher resolution imagepixel.

By a “continuous coverage function” we mean a function which determinesthe extent to which the area of an original image associated with agiven subpixel is covered by a given color or shape is determined not asthe function of a sampling function which tests whether or not there iscoverage at each of a plurality of discrete locations, but rather as aresult of a mathematical function which determines boundary locations atwhich the given coverage starts and stops in one or more dimensions, andcalculates coverage as a function of lengths or areas between one ormore such boundaries or between such boundaries and the boundary of thearea in the image associated with a given subpixel.

Commonly when creating sub pixel optimized images of outline fonts, thewindow in the character image associated with each subpixel for purposesof initially calculating such a coverage value (i.e., before colorbalance filtering) has substantially the same area and location relativeto the character's image as the given sub-pixel itself, and the coverageboundaries used are commonly the boundaries defined by the font outlineand the boundaries of the sub pixel's associated area in the image.

On the other hand, commonly when creating sub-pixel optimized images ofcolor bitmaps, the source image window associated with each subpixel ofa given color often corresponds to an area of the source imageapproximately equal to the size of an entire pixel centered around alocation in the original image corresponding to the given subpixel'slocation in the subpixel optimized representation of the original, orsource, image. Commonly the coverage calculated for such a subpixelcorresponds to the portion of the area associated with the subpixel thatis covered by one or more source image pixels, each having a colorcomponent value corresponding to that of the given sub pixel. Theboundaries used in determining such coverage include the boundaries ofsource image pixels as well as the boundaries of the source image windowassociated with the given sub pixel.

Such continuous coverage functions can be determined by measuring theportions of the length of one or more scanning lines in each of one ormore dimensions within a subpixel's associated source image window whichare covered by different source image pixels. Continuous coveragefunctions can also be determined at a greater computational cost bycalculating the area of relevant coverage within a given subpixel'scorresponding source image window which is covered by different sourceimage pixels.

Some such coverage function embodiments of the invention allow a user ofthe browser computer to select one from a plurality of scale factors.The selected scale factor is communicated to the process which scalesdown an image and the scaling process scales down the image by ahorizontal and vertical scale factor which varies as a function of theselected scale factor.

Some such embodiments further allow a user of the browser computer toselect one from a plurality of scale factors which include one or morescale factors which are non-integer ratios of the screen size. Theycommunicate the selected scale factor to the process which scales downan image and they cause the scaling process to scale down the image by ahorizontal and vertical scale factor which varies as a function of theselected scale factor.

One of the benefits of such continuous coverage functions is that theytend to provide relatively higher resolution coverage calculations for agiven level of computation than many sampling algorithms used tocalculate coverage values, and thus they are better than such samplingalgorithms at calculating luminosity values for individual sub pixelsacross a range of different scaling factors.

Some embodiments of the first aspect of the invention allow a user toselect from a plurality of trade-offs between color accuracy andpositional accuracy in the display of the scaled images. Theycommunicate the selected color/positional accuracy selection to theprocess which scales down an image and cause the scaling process toscale down the image by a method which varies the portion of an imagewhich is used to determine the luminosity of individual subpixels as afunction of the user selected color/positional accuracy selection.

In some such embodiments the image is a color image and one of the userselections is between a more-grayscale selection and one is aless-grayscale selection. When the more-grayscale selection is made, thescaled image is calculated from a set of pixel color values in which thevalues of individual pixels' different color components have beenadjusted toward the average of those color component values for the eachsuch individual pixel. When the less-grayscale selection is made thescaled image is calculated from a set of pixel color values in which thevalues of individual pixels different color components have been lessadjusted toward the average of those color component values for the eachsuch individual pixel. The individual subpixel luminosity values in thescaled image produced in response to the more-grayscale selection arebased more on the average whole pixel luminosities in the portion of theimage corresponding to the subpixel's own area than in scaled imagesproduced in response to the less-grayscale selection, in which theluminosity value of individual subpixels are based more on theluminosity of the subpixel's own color value in an pixels in a largerarea of the image.

According to a second aspect of the present invention a method ofproducing a sub-pixel resolution representation of an image suitable fordisplay on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels is provided. Themethod determines the luminosity of each subpixel in a given pixel ofthe subpixel resolution representation by defining for the sub-pixel aplurality of coverage lines which fit within a window in a higherresolution representation of the image, which window is different foreach sub-pixel of a given pixel. It calculates the length of eachcoverage line which corresponds to given pixel in the higher resolutionimage, and it determines the luminosity of the sub-pixel as a functionof the length of each coverage line which corresponds to each higherresolution pixel and the respective luminosity in the sub-pixel's colorof that higher resolution image pixel.

In some such embodiments the coverage lines associated with a givensub-pixel include at least two coverage lines which run in non-paralleldirections on the sub-pixel's window.

This aspect of the invention relates to a “line coverage” type of thecontinuous coverage functions discussed above.

According to a third aspect of the present invention a method ofproducing a sub-pixel resolution representation of an image suitable fordisplay on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels is provided. Themethod determines the luminosity of each sub pixel in a given pixel ofthe subpixel resolution representation by defining for the sub-pixel awindow in a higher resolution representation of the image, which windowis different for each sub-pixel of a given pixel, calculating the areaof each pixel in the higher resolution image which totally or partiallyfits within the sub-pixel's window, and determining the luminosity ofthe sub-pixel as a function of the included area calculated for eachsuch higher resolution image pixel and the respective luminosity in thesub-pixel's color of that high resolution image pixel. This aspect ofthe invention relates to an “area coverage” type of the continuouscoverage functions which are discussed above.

In some embodiments of such an area coverage method the windowassociated with each sub-pixel in the higher resolution image has a sizeequal to the portion of the higher resolution image corresponding to thesub-pixel's pixel and a center at the portion of the higher resolutionimage that corresponds to the center of the sub-pixel.

According to a fourth aspect of the present invention a method ofproducing a sub-pixel resolution representation of a source imagesuitable for display on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels isprovided. This method produces a scaled sub-pixel optimized image of abitmap image by associating a luminosity value with each subpixel of thescaled image. The luminosity values are calculated as a function of thewhole pixel luminosity of the one or more pixels in the source imagewhich cover a source image window corresponding to the area of thesubpixel, the percent of that window covered by each such source imagepixels, and a color balancing function that distributes subpixelluminosity values to reduce color imbalance.

In some embodiments of this fourth aspect of the invention the sourceimage is a gray scale image. In other embodiments the source image is acolor image.

In some embodiments of this fourth aspect of the invention the extent towhich a given luminosity value associated with a given subpixel's sourceimage window is distributed to other subpixels is a function of extentto which the luminosity value causes a color imbalance.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group C

According to a first aspect of the present invention a method ofdisplaying, on a subpixel addressed screen having pixels comprised ofseparately-addressable, differently-colored subpixels, digital content,including text and images is provided. The method comprises displayingon the screen, a scaled-down subpixel-optimized representation of one ormore of the images in which the luminosity of each differently coloredsubpixel of a given pixel is derived from a different area of the sameimage at a second, higher resolution, pixel scale. Also displayed on thescreen are scaled-down subpixel-optimized representations of each of oneor more character fonts of the text in which the luminosity of eachdifferently colored subpixel of a given pixel of the scaled-down imageof a given character shape is derived from a different area of a higherresolution image of that character.

In some embodiments of this first aspect of the invention the digitalcontent is represented by tagged text written in a mark-up language thatincludes image tags that identify image files. The text displayed on thescreen includes strings of characters from the tagged text, and theimages displayed on the screen are images represented by image filesidentified by the image tags.

In some embodiments the digital content is a web page and thescaled-down and subpixel-optimized images and text allow a user to seethe web page on a subpixel addressed screen having a given whole-pixelresolution as if viewing the web page on a screen with a higherresolution.

In some embodiments of the first aspect of the invention a method isprovided wherein the digital content is screen output generated by asoftware application. The scaled-down and subpixel-optimized images andtext allow a user to see the screen output on a subpixel addressedscreen having a given whole-pixel resolution as if viewing the web pageon a screen with a higher resolution.

In some embodiments of the first aspect of the invention a method isprovided wherein the screen is part of a browser computer capable ofbrowsing digital content. The browser computer includes browserprogramming which responds to user input requesting a given portion ofdigital content by requesting that content from another entity, either astorage device, another computer, or other programming running on thebrowser computer. In response to the request from the browserprogramming, the digital content is read from memory or dynamicallygenerated at a resolution higher than the first scale. The scaled-downsubpixel-optimized representations of the images are calculated afterthe digital content's images have been read from memory or dynamicallygenerated in response to the user request. The size of the scaled-downsubpixel-optimized representations of character fonts is determined as afunction of the size identified for such fonts in the digital contentafter that digital content has been read from memory or dynamicallygenerated in response to the user request.

In some embodiments a browser computer communicates a user request for agiven portion of digital content over a computer network to a servercomputer system. The server computer system reads the requested digitalcontent from memory or dynamically generates it. Calculation of thescaled-down and subpixel-optimized image representations is performed bythe server computer system, and the scaled-down subpixel-optimized imagerepresentations and the digital content's text are downloaded over thenetwork to the browser computer, which then displays the scaled downimages and text. The server computer system which stores an image caninclude a multi-computer web server. If the system on which the imagesare stored is a peer-to-peer system it is considered a server forpurposes of this claim.

In some embodiments a browser computer communicates a user request for agiven portion of digital content over a computer network to a proxyserver and the proxy server communicates the user request over thenetwork to a remote computer system. The server computer systemreceiving the request reads the requested digital content from memory ofdynamically generates it and sends the image to the proxy server overthe computer network. The calculation of the scaled-down andsubpixel-optimized image representations is performed by the proxyserver and the scaled-down subpixel-optimized image representations andthe digital content's text are downloaded over the network to thebrowser computer, which then displays the scaled down images and text.

In some embodiments the calculation of the scaled-down andsubpixel-optimized image representations is performed by the proxyserver, which then displays the scaled down image.

In some embodiments a method is provided which further includes enablinga user to select a desired display scale from a plurality of possiblereduced-size scales each having a lower resolution than the resolutionat which the image is read from memory or dynamically generated. Thescale factor used in the calculation of the scaled-down andsubpixel-optimized representations of images and in the scaling down ofcharacter font sizes is determined by this user selected display scale.This selection could be by allowing a user to select from a set orcontinuum of reduced-size scales or by allowing the user to select tozoom to a certain sized line or area.

According to a second aspect of the present invention a method ofdisplaying, on a subpixel addressed screen having pixels comprised ofseparately-addressable, differently-colored subpixels, digital contentthat includes both text and multicolor images is provided. The methoddisplays, on the screen, subpixel-optimized representations of both thedigital content's multicolor images and text in which the luminance ofindividual subpixels of a pixel conveys information from differentportions of the image or text character represented by that pixel.Different algorithms are used to produce the subpixel-optimizedrepresentations of multicolor images and of the shapes of textcharacters.

The image algorithm used to produce subpixel-optimized representationsof a multicolored image and the text algorithm used to producesubpixel-optimized representations of text characters both determine theluminosity of each differently colored subpixel of a given pixel basedon the luminosity, in a corresponding different window of a sourcerepresentation, of the image or character shape to be represented. Theimage algorithm determines a given subpixel's luminosity based more onluminosity outside of the portion of the source representation thatcorresponds in size to the given subpixel than does the text algorithm.The image algorithm determines a given subpixel's luminosity based moreexclusively on the amount of the luminosity of the given subpixels colorfound in the given subpixel's corresponding window in the sourcerepresentation than does the text algorithm, whose determination of agiven subpixel's luminosity value is less influenced by the givensubpixel's color.

In the above method, when dealing with the text algorithm the luminositycorresponds to, and is meant to include, coverage. Fonts with a sourceimage that is at a higher resolution than an anti-aliased bitmaprepresentation could be handled, for example. Some prior art subpixeloptimization algorithms tend to be more appropriate for color imagesthan for text. Thus, a higher level of clarity can be achieved by usingdifferent sub pixel optimization techniques on color images and on text.

This claim is not limited to requiring that text or images be scaleddown. Scaling is not a necessary part of this aspect of the inventionsince subpixel optimization can yield a higher perceived resolution whenused with high resolution or vector images and with outline fonts evenwithout scaling.

In some embodiments of this second aspect of the invention a method isprovided wherein the algorithm used to produce subpixel-optimizedrepresentations of a multicolored image determines the luminosity ofeach differently colored subpixel of a given pixel based on the amountof the luminosity of that subpixel's color found in a respectivedifferent portion of a higher resolution representation of the imagethat is larger than the area corresponding to the size of the subpixelin that higher resolution representation. The algorithm used to producesubpixel-optimized representations of a character shape determines theluminosity of each differently colored subpixel of a given pixel basedon the extent to which the portion of a higher resolution representationof the character's shape that corresponds to subpixel is covered by thecharacter's shape.

In some embodiments the algorithm used to produce subpixel-optimizedrepresentations of characters shapes includes producing a scaledsub-pixel optimized image of a bitmap image by associating a luminosityvalue with each subpixel of the scaled image as a function of thepercent the area of the subpixel's area in the image that is covered bythe shape, and a color balancing function designed to distribute aportion of a subpixel's luminosity values which otherwise would causecolor imbalance to nearby subpixels of different colors. In some suchembodiments the percent of a subpixel's luminosity value that isdistributed to achieve color balance is a function of the percent of thesubpixel's luminosity value which causes color imbalance.

In some embodiments of the second aspect of the invention digitalcontent is downloaded over a computer network in the form ofsubpixel-optimized image bitmaps created by the image algorithm and textstrings. A computer receiving this download displays the downloadeddigital content by displaying the downloaded image bitmaps. The displayof the downloaded text strings uses subpixel-optimized font bitmapscreated by the text algorithm to represent the characters in thedownloaded text strings. In some embodiments the download of the digitalcontent represents repeated occurrences of the same subpixel-optimizedimage bitmap by a symbolic reference, rather than by a repeatedtransmission of the bitmap, to reduce the amount of information requiredfor the download.

In one embodiment of the invention, for example, the layout of a screenis downloaded to a browser in the following way. The proxy process doingthe layout establishes a two-way communication pipe-through a socketconnection with the browser. A text string is sent as a pair of X and Yscreen coordinates and a string of characters. Fonts are specified onlywhen they change. An image is downloaded as a pair of X and Y screencoordinates, the bitmap of the image, and a signature, or ID. If theproxy knows the client should have an image stored in its cache, it mayjust download the images as its screen coordinates and its ID. Thisallows, for example, a bitmap which is to be used repeatedly in a webpage to be downloaded only once.

In some embodiments a method is provided wherein the digital content islaid out before it is downloaded to the receiving computer. The textstrings downloaded contain text which is to be displayed on one line,and the downloaded content specifies the location at whichsubpixel-optimized image bitmaps and text strings are to be displayed onthe screen, so that the receiving computer does not have to determinethe location of the images and text strings

In some such embodiments, the proxy process, whether it is on a web siteor on an intermediary proxy server, might not know the caching status ofthe browser. The proxy process might download symbolic representationsof images (such as URLs). The browser would ask for the actual contentonly if it did not already have the image contents cached. Further, insome such embodiments if the proxy process knows that a requested imagehas not been previously sent to the client or that it is not resident inthe client's cache, the proxy process would download the entire imageand not just refer to it symbolically.

In some embodiments the receiving computer requests, over the network,font bitmaps to represent character-font shapes in downloaded stringsfor which it does not already have corresponding bitmaps. In someembodiments the receiving computer generates such subpixel-optimizedfont bitmaps from outline fonts to represent character-font shapes inthe downloaded strings. In some embodiments the font bitmaps aredownloaded from the same computer that downloaded the image bitmaps.

In some embodiments of the second aspect of the invention a method isprovided wherein the size of the displayed subpixel-optimizedrepresentations of images and text is scaled as a function of a givendisplay scale. The variation of the display scale can be in differentdisplays of same content by the same user, in displays of differentcontent by the same user, or in displays of the same or differentcontent by different viewers.

In some embodiments a method is provided wherein the digital content isread from memory or dynamically generated in response to a user request,and the subpixel-optimized representations of the images are calculatedafter being read from memory or dynamically generated in response to theuser request. This calculation includes causing the subpixel-optimizedimages to be scaled-down to the display scale. The size of thescaled-down subpixel-optimized representation of text characters whichis displayed is determined as a function of the size identified for suchfonts in the digital content, after that digital content has been readmemory or dynamically created in response to the user request.

In some such embodiments the browser computer communicates a userrequest for a given portion of digital content over a computer networkto a server computer system. The server computer system reads therequested digital content from memory or dynamically generates it andthe calculation of the scaled-down and subpixel-optimized imagerepresentations is performed by the server computer system. Thesescaled-down subpixel-optimized image representations and the digitalcontent's text are downloaded over the network to the browser computer,which then displays the scaled down images and text. If the image isstored on a peer-to-peer system, such peer-to-peer system is considereda server for purposes of this claim.

In some such embodiments a browser computer communicates a user requestfor a given portion of digital content over a computer network to aproxy server. The proxy server communicates the user request over thenetwork to a remote computer system. The server computer systemreceiving the request reads the requested digital content from memory ordynamically generates it and sends the image to the proxy server overthe computer network. The calculation of the scaled-down andsubpixel-optimized image representations is performed by the proxyserver and, then, the scaled-down subpixel-optimized imagerepresentations and the digital content's text are downloaded over thenetwork to the browser computer, which then displays the scaled downimages and text.

In some such embodiments the calculation of the scaled-down andsubpixel-optimized image representations is performed by the browser,which then displays the scaled down image.

In some such embodiments a method is provided that further includesenabling a user to select a desired display scale from a plurality ofpossible reduced-size scales each having a lower resolution than theresolution at which the image was read from memory or dynamicallygenerated. The scale factor used in the calculation of the scaled-downand subpixel-optimized representations of images and in the scaling downof character font sizes is then determined by the user selected displayscale. This selection could be by allowing the user to select from a setor a continuum of reduced-size scales or by allowing the user to selectto zoom to a certain sized line or area.

In some embodiments the digital content can specify different sizes fordifferent portions of text. A first portion of text having a smallerspecified font size is scaled down by less in the display than a secondportion of text having a larger specified font size to prevent thedisplay of characters of the first portion of text from falling below agiven size.

In some embodiments the digital content can specify a first font familyfor a given portion of its text and the given portion of text isdisplayed with a second, different font family selected to be easier toread at small font resolutions.

In some embodiments a method is provided wherein the subpixel resolutionof the screen is higher in a first direction than in a second,perpendicular direction and

the display of characters of at least a portion of text is automaticallyscaled down, as a function of the display scale, more in the firstdirection relative to the second direction than is the display ofimages. In some such embodiments the first direction is the horizontaldirection. Many fonts benefit more from increases in the horizontalresolution than vertical resolution because of their shape.

In some embodiments the subpixel-optimized representations of textcharacters for display are derived from bitmaps representing a separateopacity value for each subpixel in a pixel. Displayed subpixel optimizedimages are true color bitmaps with separate luminance values for eachsubpixel of a pixel.

In some embodiments of the second aspect of the invention the digitalcontent is represented by tagged text written in a mark-up language thatincludes image tags that identify data objects. The text displayed onthe screen includes strings of characters from the tagged text, and theimages displayed on the screen are images represented by data objectsidentified by the image tags.

In some embodiments the digital content is a web page and thesubpixel-optimized representations of images are scaled down from theimages in the web page. The subpixel-optimized representation of textcharacters show the displayed characters at font sizes that arescaled-down from the font sizes indicated for those characters in theweb page. The scaled-down and subpixel-optimized representation ofimages and such text allow a user to see the web page on a subpixeladdressed screen having a given whole-pixel resolution as if viewing theweb page on a screen with a higher resolution.

In some embodiments of the second aspect of the invention a method isprovided wherein the digital content is screen output generated by asoftware application. In such a method the subpixel-optimizedrepresentations of images are scaled down from the images in the screenoutput and the subpixel-optimized representation of text characters showthe characters at font sizes which are scaled-down from the font sizesindicated for those characters in the screen output. Such scaled-downand subpixel-optimized images and text allow a user to see the screenoutput on a subpixel addressed screen having a given whole-pixelresolution as if viewing the screen output on a screen with a higherresolution.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group D

According to a first aspect of the present invention a method ofdisplaying digital content on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels isprovided. The digital content may include text and/or images that arerepresented by a mark-up language that includes tags which identifyimages contained in the content. The method comprises accessing thedigital content, including the text, and displaying on the screen thecharacters of the text in which, (a) the pixel patterns representingeach individual text character represent an outline shape of thecharacter, and (b) the luminosity of each differently colored sub-pixelof a given pixel used in the display of a portion of a given character'sshape has been derived as a function of the extent to which the outlineof the given character's shape covers that individual sub-pixel.

In some embodiments of this first aspect of the invention the accesseddigital content is a web page.

In some such embodiments the web page is accessed by downloading it overthe Internet. In some embodiments it is character-font shapeinformation, necessary to display the pixel patterns representing eachof a plurality of the text characters, that is downloaded over theInternet. In some such embodiments the character-font shape informationmay be downloaded from a remote server, or a peer-to-peer computer, thatis different from the computer system from which the digital content wasdownloaded.

In some embodiments of the first aspect of the invention a methodcomprising the downloading over the internet of character-font shapeinformation necessary to display the pixel patterns representing each ofa plurality of the text characters is provided. In some embodiments thedownloaded character-font shape information is in the form of pixelpatterns, and the display of the characters includes displaying thedownloaded pixel patterns. In some such embodiments the size of thefont, as represented by the downloaded character-font shape information,varies as a function of the size to which the page is scaled.

In some embodiments a method is provided wherein the downloadedcharacter-font shape information is in the form of character shapeoutline definitions and hinting information on how to map the outlineshapes onto a pixel array of a given size. Display of the charactersincludes displaying pixel patterns generated from the character shapeand hinting information.

In some embodiments the download of character-font shape informationincludes the download of such information for a sub-set of a givenfont's characters which sub-set is selected as a function of the textcharacters of a given font which have been downloaded for the display.

In some embodiments a method is provided wherein the mark-up languageincludes tags indicating information about the font which should be usedto display a given portion of text. The method further comprisesdisplaying characters from the given portion of text using a differentfont family than that suggested for that portion of text by the tags.The downloaded character-font shape information includes informationnecessary for displaying the given portion of text with pixel patternscorresponding to the different font. This display of text by use of adifferent font family than that identified by the tags is particularlyuseful where the downloaded fonts are going to be shown on a smallresolution or small size screen or where they are going to be sub-pixeloptimized. For example, the inventors have developed a set of sub-pixeloptimized fonts that are optimized to provide relatively goodreadability at a very low pixel resolution. These make a web paged laidout at a 640×480 resolution quite readable on a 320×240 display. Thesefonts are commonly substituted for normal web page fonts, particularlywhen the fonts are not large to begin with.

In some such embodiments the display of characters from that givenportion of text, by use of a different font family than that suggestedfor that portion of text by the tags, uses fonts with a different heightto width ratio that that of the fonts suggested by the markup languagetags. This is done to let the scaled fonts take advantage of thedifference in vertical and horizontal resolution of the display screen,caused by the subpixel resolution, to more compactly represent text witha given level of readability. In some of those embodiments a fontfamily, different from that specified for the text by the markuplanguage tags, is used for displaying the text in a subpixel optimizedfont that has been hinted and/or designed for maximum readability at thegiven sub-pixel resolution at which it is to be shown. For example,characters which are to be shown at a small pixel size on a 320 by 240display having a subpixel resolution of 960 by 240 should havecharacters optimized for compact display at a substantially higherhorizontal than vertical resolution.

In some embodiments the character-font shape information is downloadedfrom a different computer than that from which the digital contentincluding the text is downloaded. In some such embodiments a method forautomatically downloading character-font shapes is provided. Accordingto this method, the text is to be displayed on a browser computer andthe browser computer receives the downloaded text from a first computer.Subsequently, the browser computer requests and receives the downloadedcharacter-font shape information for a set of character-font shapesdetermined as a function of the character-font shapes specified by thedownloaded digital content, from a second computer. In such a method thedownloaded character-font shape information may be requested using theHttp protocol.

In some embodiments of the first aspect of the invention the font pixelpattern representing the shape of each individual text character isproduced by associating a luminosity value with each subpixel of thefont pixel pattern. This luminosity value is determined as a functionof, the percent of the subpixel's area in the image that is covered bythe character shape, and a color balancing function designed todistribute a portion of a subpixel's luminosity value which otherwisewould cause color imbalance to nearby subpixels of different colors. Thepercent of a subpixel's luminosity value that is so distributed is afunction of the percent of the subpixel's luminosity value which causescolor imbalance.

In some embodiments of the first aspect of the invention a methodwhereby fonts to be displayed are dynamically scaled as a function of ascale factor is provided. According to this method the display of texton the screen is scaled down by a display scale factor. The digitalcontent is received in a form in which the text has not been scaled bythe scale factor, and after the digital content is received the size ofthe scaled-down subpixel-optimized representation of character fonts isdetermined as a function of the scale factor.

In some embodiments the browser receives the requested digital contentand the scaled-down subpixel-optimized representation of character fontsfrom a server computer. According to this method a browser computercommunicates a user request for a given portion of digital content overa computer network to a server computer system. The server computersystem reads the requested digital content from memory or dynamicallygenerates the requested digital content. The size of the scaled-downsubpixel-optimized representation of the text's character fonts isdetermined by the server computer system and the requested digitalcontent and the size of such scaled-down subpixel-optimized characterfont representations are downloaded by the server, over the network, tothe browser computer, which then displays the digital content's textusing such scale-down representations. If the system on which the imagesare stored is a peer-to-peer system it is considered a server forpurposes of this claim.

In some embodiments the browser receives the requested digital contentand the scaled-down subpixel-optimized representation of character fontsfrom a proxy server computer. In this method a browser computercommunicates a user request for a given portion of digital content overa computer network to a proxy server. The proxy server communicates theuser request over the network to a remote server computer system. Theserver computer system receiving the request reads the requested digitalcontent from a storage device or dynamically generates the requesteddigital content. The server computer system sends the requested digitalcontent to the proxy server over the computer network. The size of thescaled-down subpixel-optimized representation of the text's characterfonts is determined by the proxy server, and the requested digitalcontent and the size of such scaled-down subpixel-optimized characterfont representations are downloaded by the proxy server, over thenetwork, to the browser computer, which then displays the digitalcontent's text using such scaled-down representations. In someembodiments the size of the scaled-down subpixel-optimizedrepresentation of the text's character fonts is determined by thebrowser computer, which then displays the scaled down image.

In some embodiments a method further enabling a user to select a desireddisplay scale factor from a plurality of possible reduced-size scaleseach having a lower resolution than that in which the digital content isfirst received is provided. The size of the scaled-downsubpixel-optimized representation of character fonts is determined as afunction of the user selected scale factor. In some embodiments thescaled down subpixel-optimized representations of character fonts are assmall as 10 whole pixels per EM. In some such embodiments the scaleddown subpixel-optimized representations of character fonts are as smallas 8 whole pixels per EM is provided. In some embodiments the fontfamily used for the display of the text is a font family optimized forreadability when shown in a subpixel optimized manner at a size of lessthan 10 pixels per EM. In some such embodiments the font family has fontshapes designed for display with higher sub-pixel resolution in thewidth direction than in the height direction relative to the characters.

In some such embodiments the font optimization includes hinting whichadjusts character shape boundaries at a resolution at least as high asthe subpixel resolution. In some embodiments the font family has fontshapes which have a higher height to width ratio than most normal fonts.In some cases the majority of character shapes in the font family are atleast twice as high as they are wide.

In some embodiments the digital content includes different portions oftext intended to be shown at different sizes. The determination of thesize of the scaled-down subpixel-optimized character representationsincludes scaling down the size of text which is intended to be shown ata smaller size than text which intended to be shown at larger size. Thisis to prevent the text intended to be shown at a smaller size from beingdisplayed below a given size.

In some embodiments the digital content includes text which is intendedto be shown with a non-grayscale foreground color. In those instancesthe text is displayed in a subpixel-optimized manner with a foregroundcolor which is closer to grayscale than intended. This method is usedbecause displaying sub-pixel optimized fonts at a very small size usingcolored text tends to interfere with readability because it varies theluminosity between the sub-pixels of a given pixel to reflect such colorand this variation in sub-pixel intensity to reflect color interfereswith the variation in sub-pixel intensity used to convey spatialresolution of a font. In some such embodiments the text that is intendedto be displayed with a non-grayscale color is displayed with a grayscalecolor. In some such embodiments the text which is intended to bedisplayed with a non-grayscale color is displayed with a non-grayscalecolor that is closer to grayscale than the intended color.

In some embodiments of the first aspect of the invention a method isprovided wherein the digital content can define foreground andbackground colors for a given portion of text. The given portion of textis displayed with a different background and/or foreground color than isdefined by the digital content to increase the ability of individualsub-pixels to represent the extent to which they are covered by theoutline of the given character shape they are used to represent.

According to a second aspect of the present invention a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method comprises receiving the digitalcontent including the text, and displaying on the screen characters ofthe text in which the pixel patterns representing each individual textcharacter represent an outlined defined shape of the character. Theluminosity of each differently colored sub-pixel of a given pixel usedin the display of a portion of a given character's shape is derived as afunction of the extent to which the outline of the given character'sshape covers that individual subpixel. The digital content includes textwhich is intended to be shown with a non-grayscale foreground color, and

the text is displayed in a subpixel-optimized manner with a foregroundcolor which is closer to grayscale than intended.

In some embodiments of this second aspect of the invention a method isprovided wherein the text that is intended to be displayed with anon-grayscale color is displayed with a grayscale color. In someembodiments of a method is provided wherein the text that is intended tobe displayed with a non-grayscale color is displayed with anon-grayscale color which is closer to grayscale than the intendedcolor.

According to a third aspect of the present invention a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method is comprised of receiving thedigital content including the text and displaying on the screencharacters of the text in which the pixel patterns representing eachindividual text character represent an outlined defined shape of thecharacter. The luminosity of each differently colored sub-pixel of agiven pixel used in the display of a portion of a given character'sshape has been derived as a function of the extent to which the outlineof the given character's shape covers that individual sub-pixel. Thefont pixel pattern representing the shape of each individual textcharacter is produced by associating a luminosity value with eachsubpixel of the font pixel pattern. The luminosity values are determinedas a function of the percent of the subpixel's area in the image that iscovered by the character shape, and a color balancing function. Thecolor balancing function is designed to distribute a portion of asubpixel's luminosity values which otherwise would cause color imbalanceto nearby subpixels of different colors. The percent of a subpixel'sluminosity value that is so distributed is a function of the percent ofthe subpixel's luminosity value which causes color imbalance.

In some embodiments of this third aspect of the present invention thefont pixel pattern representing the shape of each individual textcharacter is produced by the following steps. A coverage value for eachsub-pixel with a given pixel in image area is determined, whichsub-pixel coverage value corresponds to the percentage of the subpixelwhich is covered by the shape. A pixel coverage value for the givenpixel, which is a function of the coverage values calculated for one ormore of the subpixels with the given pixel is calculated. A valuecorresponding to the given pixel's coverage value is added to aluminosity value calculated for each sub-pixel of the given pixel. Foreach sub-pixel in the given pixel the method is comprised of (a)determining a differential coverage value for each sub-pixelcorresponding to the difference between the sub-pixel's coverage valueand the given pixel's coverage value, and (b) adding to the luminosityvalue calculated for each given sub-pixel and one or more nearbysub-pixels a value corresponding to a portion of the given sub-pixel'sdifferential coverage value, where at least some of the nearbysub-pixels are located outside of the given sub-pixel's pixel.

According to a fourth aspect of the present invention—a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method comprises the following. Thedigital content including the text is received and the characters of thetext are displayed on the screen. For the characters of the text, thepixel patterns representing each individual text character represent anoutlined defined shape of the character. The luminosity of eachdifferently colored sub-pixel of a given pixel used in the display of aportion of a given character's shape has been derived as a function ofthe extent to which the outline of the given character's shape coversthat individual subpixel. The font family used for the display of thetext is a font family optimized for readability when shown in a subpixeloptimized manner at a size of less than 10 pixels per EM.

In some embodiments of this fourth aspect of the present invention thefont family has font shapes designed for display with higher sub-pixelresolution in the width direction than in the height direction relativeto the characters. In some embodiments the font optimization includeshinting which adjusts character shape boundaries at a resolution atleast as high as the subpixel resolution. In some embodiments the fontfamily has font shapes which have a higher height to width ratio thanmost normal fonts. In some such embodiments the majority of charactershapes in the font family are at least twice as high as they are wide.

According to a fifth aspect of the present invention a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method is comprised of the following.The digital content including the text is received and displayed on thescreen. For the characters of the text the pixel patterns representingeach individual text character represent an outlined defined shape ofthe character. The luminosity of each differently colored sub-pixel of agiven pixel used in the display of a portion of a given character'sshape has been derived as a function of the extent to which the outlineof the given character's shape covers that individual sub-pixel. Thedigital content includes different portions of text intended to be shownat different sizes, and the determination of the size of scaled-downsubpixel-optimized character representations includes scaling down thesize of text which is intended to be shown at a smaller size than textwhich intended to be shown at larger size, so as to prevent the textintended to be shown at a smaller size from being displayed below agiven size.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group E

According to a first aspect of the present invention digital contentrepresented by a mark-up language is laid out, using one pixelresolution and using fonts that have a different pixel resolution, todisplay the digital content laid-out at a first resolution. This methodis not limited to subpixel optimization techniques.

In some embodiments of this first aspect of the invention the digitalcontent is an image. In some embodiments the invention the digitalcontent is a web page.

In some embodiments of the first aspect of the invention the layout isdone using font metrics that do not correspond to the actual size atwhich the fonts will be shown on the screen.

In some embodiments of the first aspect of the invention the user canvary the virtual resolution at which the digital content is laid out.For example, the user can tell the layout engine that it is to layoutthe digital content at a resolution of 640×480 or 800×600 or 1024×768,etc. In some embodiments of the first aspect of the invention the usercan vary the actual resolution at which a portion of the virtual layoutis displayed. For example, the user can expand the virtual resolution asstated above, or change the portion of the actual display screen that isused.

According to a second aspect of the present invention a font in a screenrepresentation is laid-out at a given resolution using a given fontmetric. The screen is drawn at a different resolution using font bitmapswhich have a resolution appropriate for the different resolution anddifferent font metrics than that at which the fonts were laid out.

In some embodiments of this second aspect of the invention the fontmetrics used for the layout are those for fonts designed for thedifferent resolution. This aspect of the invention relates to using fontmetrics when performing a layout at a virtual resolution that are basedon the size and shape of the individual scaled-down characters that willactually be displayed on the browser screen. The program performing alayout requests font metrics giving the size of each individualcharacter in a line of text being laid out, so as to determine where theline breaks should occur in the text. This aspect of the inventionperforms such text layout using metrics for individual characterscorresponding to the font metrics of the individual scaled-down bitmapswhich will actually be displayed for such characters on the actualdisplay screen, multiplied by the ratio of the virtual resolution atwhich the layout is being performed and the actual resolution of thescreen or window on which the web page will be displayed. When fonts arebeing laid out at a larger virtual resolution than the resolution atwhich they will be displayed it is desirable to use font metrics basedon the actual font metrics of the scaled-down bitmaps at which they willbe displayed. One reason for this is that, the font metrics forindividual characters of a given font do not scale uniformly withchanges in font size. This is because of the distortions that are madeto a character's shape as that shape is mapped into different sizedarrays of pixels so that features of the character's shape might beoptimally aligned with rows and columns of such different sized pixelarrays. These distortions tend to become even more exaggerated atextremely small font sizes of the type that might typically be used onrelatively low resolution displays.

In some embodiments of the second aspect of the invention a remoteprocess is used to do the layout. This claim relates to using a proxyprocess, either on a web site being browsed, a remote computergenerating display output from a program it is running, or on a proxyserver which is intermediating between such a web site or remotecomputer, to do the layout at the virtual resolution and to do thescaling and subpixel optimization associated with producing scaled-downsub pixel optimized images and/or text which is to be displayed on arelatively low resolution screen. This has the advantage of allowing asmall computing device such as a handheld computer, acellphone/computer, or a wristwatch/computer, to display sophisticatedweb content or program displays without requiring the memory andprocessing power that would normally be required to do so. In someembodiments of the second aspect of the invention the method is used forweb browsing.

According to a third aspect of the present invention a method ofdisplaying digital content is provided. In this method a virtual layoutof the position of the digital content's visible text and images in avirtual space having a virtual horizontal and vertical pixel resolutionis performed. When the virtual layout is performed each such image istreated as having a virtual layout size in the virtual layout, and eachcharacter in the visible text is treated as having a virtual horizontaland vertical pixel size. The visible text is flowed across lineboundaries by breaking portions of the text which cross a line boundaryinto separate single line character strings, each of which fits on aline. Information describing the images, single line character strings,and their locations in the layout are downloaded to a browser system.The browser system displays the text and image elements of the digitalcontent at an actual pixel resolution that is different than the virtualresolution by a horizontal scale factor and a vertical scale factor.Both the images and single line character strings are displayed atdisplay screen locations corresponding to the locations at which theyhave been laid out in the virtual space, adjusted in both the horizontaland vertical direction by the horizontal and vertical scaling factors,respectively. Each of the images in the display is represented by animage that has been scaled down from the image's virtual layout size bythe horizontal and vertical scaling factor. Individual characters in thesingle line text strings are represented by a pixel pattern that has asize that differs from the character's virtual horizontal and verticalpixel size by the horizontal and vertical scale factors.

In some embodiments of this third aspect of the invention text isdisplayed with subpixel optimization bitmaps and the images are subpixeloptimizations.

In some embodiments of the third aspect of the invention the digitalcontent is a web page. In some embodiments of the third aspect of theinvention the digital content is a virtual screen image created by anapplication.

In some embodiments of the third aspect of the invention a method isprovided wherein the digital content is received containing imagebitmaps having a given pixel resolution and the virtual layout size ofan image is the pixel resolution at which those images were received.

In some embodiments of the third aspect of the invention fonts aresubstituted with fonts having different metrics before virtual layout,and the layout is performed using the substituted font's metrics.

In some embodiments of the third aspect of the invention a method isprovided wherein the display of both images and single line characterstrings is performed on a browser computer. The virtual layout isperformed on a computer remote from the browser computer and the remotecomputer downloads to the browser computer the images and the displayscreen locations for the display of images and single line characterstrings. In some embodiments the remote computer that performs thevirtual layout is a proxy server that is remote from both the browsercomputer and computers on which a web page is located.

In some embodiments of the third aspect of the invention the user canvary the virtual resolution at which digital content is laid out. Insome embodiments of the third aspect of the invention the user can varythe actual resolution at which a portion of virtual layout which isdisplayed. In some embodiments of the third aspect of the invention theuser can vary the virtual resolution at which the digital content islaid out. In some embodiments of the third aspect of the invention theuser can vary the actual resolution at which a portion of the virtuallayout is displayed.

According to a fourth aspect of the present invention a method ofdisplaying a web page is provided. In this method the pixel size of oneor more images of the web page is scaled down. The method scales downthe font metrics associated with the web page's visible text andperforms a layout of the position of the web page's visible text andimages in a display space having a given horizontal and vertical pixelresolution. It treats each such image as having a scaled down size inthe layout, treats each character as having a scaled down pixel size inthe layout, and flows the visible text across line boundaries bybreaking portions of text which cross a line boundary into separatesingle line character strings, each of which fits on a line. Both theimages and single line character strings are displayed at locationscorresponding to the locations at which they have been laid out in thedisplay space. Each of the images in the display is represented by ascaled image that has the scaled down pixel size used in the layout, andindividual characters in the single line text strings are represented bya pixel pattern that has the character's scaled down pixel size used inthe layout.

In some embodiments of this fourth aspect of the invention the displayof both the images and single line character strings is performed on asub-pixel addressed screen having pixels comprised of separatelyaddressable differently colored sub-pixels. The scaling down of thepixel size images includes determining the luminosity of eachdifferently colored sub-pixel of a given pixel in the scaled image basedon the amount of the luminosity of that sub-pixel's color found in arespective different portion of a higher resolution representation ofthe image.

In some embodiments of the fourth aspect of the invention the display ofboth the images and single line character strings is performed on asub-pixel addressed screen having pixels comprised of separatelyaddressable differently colored sub-pixels. The pixel patternsrepresenting each individual text character represent an outlineddefined shape of the character, and the luminosity values of eachdifferently colored sub-pixel of a given pixel in the pixel pattern usedto represent a given text character has been determined based on theextent to which the portion of the representation of the outline of thecharacter's shape that corresponds to sub-pixel is covered by thecharacter's outline defined shape.

In some embodiments of the fourth aspect of the invention fonts indigital content are substituted with fonts that have different metrics.In some embodiments of the fourth aspect of the invention fonts indigital content are substituted with fonts optimized for display atnon-square resolution. In some embodiments of the fourth aspect of theinvention fonts in digital content are substituted with fonts optimizedfor display at 10 pixels per em or below. In some embodiments the fontsare optimized for 10 pixels per em or below. In some embodiments of thefourth aspect of the invention fonts in digital content are substitutedwith subpixel-optimized fonts. In some embodiments of the fourth aspectof the invention the relative font size of small fonts is changed tomake them more readable at a small size.

In some embodiments of the fourth aspect of the invention the scalingdown of fonts increases the size of smaller fonts relative to largerfonts to prevent smaller fonts from being displayed below a given size.

In some embodiments of the fourth aspect of the invention the digitalcontent is a web page. In some embodiments of the fourth aspect of theinvention the digital content is a virtual screen image created by anapplication.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group F

According to a first aspect of the present invention a method isprovided wherein a web page, including the layout of the web page with agiven resolution, is displayed. When the user zooms so as to change theratio of the display resolution to the layout resolution, the page isre-laid out to reflect the change in the font metrics of the fonts usedto display text in the web page at the different display resolutions.The text is reflowed to accommodate differently hinted text at differentscale views of the web page at a given nominal layout resolution.

In some embodiments of this first aspect of the invention the systemuses different font sizes for different scaled page views. In someembodiments of the first aspect of the invention sub-pixel optimizedtext is used in the display. In some embodiments of the first aspect ofthe invention the layout is performed on a first computer, the layoutinformation is downloaded to a second browser computer, and is displayedon the browser computer.

In some embodiments the user can select to vary the zoom on the browser.This selection is uploaded to a first computer. The first computerre-lays out the web page in response to the change in font metricsresulting from the change in the display resolution. In such embodimentsthe remove process can download the rest of the zoomed page which can becached.

According to a second aspect of the present invention a method isprovided wherein a web page, including the layout of the web page with agiven resolution, is displayed. When the user zooms so as to change theratio of the display resolution to the layout resolution, the page isnot re-laid out to reflect the change in the font metrics of the fontsused to display the text in the web page at the different displayresolution. In some embodiments of this second aspect of the invention amethod to accommodate differently hinted text at different zoom scalesby adjusting the spacing between words in individual strings isprovided. In some embodiments of the second aspect of the invention amethod to accommodate differently hinted text at different zoom scalesby adjusting the spacing between individual characters in words inindividual strings is provided.

In some embodiments of the second aspect of the invention the layout isperformed on a first computer. The layout information is downloaded to asecond browser computer and is displayed on the browser computer. Insome embodiments the user can select to vary the zoom on the browser.This selection is uploaded to a first computer. In such embodiments thefirst computer determines which portion of the prior layout is in theselected zoomed view and downloads that information to the browser,which displays it using fonts of a different size to reflect the newlyselected zoom. In some embodiments the browser determines which portionof the previously downloaded page is in the view having the newlyselected zoom value, and redisplays it using fonts of a different sizeto reflect the newly selected zoom.

According to a third aspect of the present invention a method ofbrowsing the web is provided. The method consists of downloading a webpage from across a computer network, producing a first display of atleast a portion of the web page at a first scale, and responding to auser's selection of a given portion of the first display by producing asecond display of a portion of the web page including the selectedportion, where the second display is at a second scale automaticallyselected to cause the size of the portion of the web page shown in thesecond display to correspond to the size of the selected portion.

In some embodiments of this third aspect of the invention a method isprovided wherein the user's selection of a given portion of the firstdisplay is performed by dragging a cursor across the selected portion ofthe first display. In some embodiments the user's selection of a givenportion of the first display is performed by dragging a rectangle aroundthe selected portion of the first display. In some embodiments theuser's selection of a given portion of the first display is performed bydragging a horizontal line across the selected portion of the firstdisplay. The portion of the web page shown in the second displayautomatically places the portion of the web page corresponding to theline in the upper one third of the second display. This innovation canbe used to allow a user to both select the portion of the width of a webpage or similar media which is to be zoomed into and the portion of aweb page which is to be placed near the top of the screen with onesimple stroke. In some embodiments the first display can scroll during,and in response to, the dragging so as to enable the selected portion toinclude a portion of the web page which was not shown in the firstdisplay at the start of the drag.

In some embodiments of the third aspect of the invention a method isprovided wherein the user's selection of a given portion of the firstdisplay is performed by indicating an object shown in the first display.The method automatically defines the selected portion of the firstdisplay as being the portion of that display which corresponds to thewidth and/or height of the indicated object. In some embodiments theindication of an object is performed by clicking on the object. In someembodiments the selected object is an image, a control, a cell within aweb page table, a frame of a web page, or an automatically identifiablegrouping of text. Automatically identifiable groupings of text includesingle line text strings, bodies of text at a certain tag level in amarkup language page, etc.

In some embodiments of the third aspect of the invention a quick zoom,which is a zoom that merely blows up a bitmap pattern of the lowerresolution image being zoomed, can be performed. A quick zoom wouldoften be desirable where the device upon which the zoom image is beingdisplayed has a low bandwidth link to the source of the media beingdisplayed. In this case, images would commonly only be downloaded in theresolution of the non-zoomed view, and obtaining higher resolution imageinformation might be rather slow. So using such a quick zoom would allowthe user to at least see the representation of the image while waitingfor the download of its higher resolution equivalent.

In some embodiments of the third aspect of the invention the user canselect downloads of non-scaled images individually. In some embodimentsof the third aspect of the invention images can be scaled up or down. Ifthe scaled images are too large to fit on the screen at a givenresolution, a peephole view (i.e., a view that shows only a portion ofthe width at which a page has been laid out at) of a portion of theimage, can be scrolled through them.

In some embodiments of the third aspect of the invention a zoom to fitthe width of a text container, such as a table or a layer in HTML orother containers in other markup languages, can be performed.

According to a fourth aspect of the present invention a method ofbrowsing the web is provided. The method comprises downloading a webpage from across a computer network and laying out the position of theweb page's visible text and/or images in a layout space havinghorizontal and vertical layout pixel resolutions. In performing thelayout each image is treated as having a layout size in the layoutspace. Each character in the visible text is treated as having ahorizontal and vertical layout pixel size in the layout space, and thevisible text is flowed across line boundaries by breaking portions oftext which cross a line boundary into separate single line characterstrings, each of which fits on a line in the layout space. A firstdisplay of at least a portion of the web page is produced at a firstscale having a pixel resolution that corresponds to the horizontal andvertical layout resolutions multiplied by the first horizontal andvertical scale factors, respectively. In this first display both theimages and single line character strings are displayed at display screenlocations corresponding to the locations at which they have been laidout in the layout space, adjusted in the horizontal and verticaldirection as a function of both the first horizontal and verticalscaling factors, respectively.

Each of the images in the first display is represented by a pixelpattern that has been scaled from the image's layout size as a functionof the first horizontal and vertical scaling factors, each of theindividual characters in each single line text strings in the firstdisplay is represented by a pixel pattern that has a size that relatesto the character's horizontal and vertical layout pixel size as afunction of the first horizontal and vertical scaling factors,respectively. The user's selection to display a portion of the web pageat a second scale is responded to by producing a second display of atleast a portion of the web page at a pixel resolution which correspondsto the horizontal and vertical layout resolutions multiplied by secondhorizontal and vertical scale factors, respectively.

Each of the images in the second display is represented by a pixelpattern that has been scaled down from the image's layout size as afunction of the second horizontal and vertical scaling factors. Each ofthe individual characters in the single line text string is representedby a pixel pattern that has a size that relates to the character'shorizontal and vertical layout pixel size as a function of the secondhorizontal and vertical scaling factors, respectively. The ratio of thehorizontal size of the pixel patterns of at least some individualcharacters in the first and second displays differs from the ratio ofthe first and second horizontal scaling factors. This difference inratio causes the relative location of individual characters in differentsingle line character strings to vary between the first and seconddisplays, but the fact that the same single line character strings aredisplayed in both the first and second displays prevents this differencein ratio from changing which portions of text appear on a given line inthe different displays.

In some embodiments of this fourth aspect of the invention the browserrequests a web page through a proxy. The proxy requests the page from aremote site. When the proxy receives the page it lays it out anddownloads its images and character string elements, and the locations atwhich those elements are to be displayed. The browser displays theelements at a first scale. When the user selects a second scale, thebrowser redisplays the elements at a second scale and the distancesbetween locations are similarly scaled without obtaining new displaylocations from the browser. In some embodiments the browser scales abitmap of an image at a first scale and uses it in a second display atsecond scale. In such embodiments the browser can request a largerversion of an image for display at second scale. In some embodiments ifthe browser already has stored on it fonts of an appropriate size forthe second scale, it displays text in the second scale with those fontswithout the need to obtain those fonts from a proxy. In some embodimentsthe proxy sends down an image at a different scale for the seconddisplay.

In some embodiments of the fourth aspect of the invention sub-pixeloptimized fonts are used in the display of at least one of the twoscales. In some embodiments of the fourth aspect of the invention, asfont sizes change, metrics of the characters of the font do not alwayschange in the same proportion.

In some embodiments of the fourth aspect of the invention a client mayhave sufficient computational resources to add or subtract space betweenbitmaps without communication with the proxy.

In some embodiments of the fourth aspect of the invention individualcharacters in text strings are represented by outline fonts. In someembodiments of the fourth aspect of the invention the individualcharacters in the first and/or second display are downloaded across anetwork from a font server.

In some embodiments of the fourth aspect of the invention a‘ZOOM-TO-FIT’ function is provided wherein

a user's selection to display a portion of the web page at a secondscale is performed by the user selecting a given portion of the firstdisplay. In response to the user's selection a second display of aportion of the web page including the selected portion is produced. Thesecond scale is automatically selected to cause the size of the portionof the web page shown in the second display to correspond to the size ofthe selected portion.

According to a fifth aspect of the present invention a ‘QUICKZOOM’function is provided. A quickzoom is a zoom that blows up a bitmappattern of the lower resolution image being zoomed. The browserinterface has controls for the selection of the quickzoom function thatcauses a quickzoom of all or a portion of a web page or other digitalcontent to be performed. This quickzoom is distinguished from MircoSoftWindows' magnifying glass function by the fact that the browser hascontrols for allowing this function to be built into it.

In some embodiments of this fifth aspect of the invention a quickzoom,which does a blow up of lower resolution image data for zoom purposesbut which uses higher resolution font bitmaps to represent zoomed text,if it has them available, is provided. In some embodiments if the higherresolution font bitmaps are not available, the higher resolution fontbitmaps can be substituted into the quickzoom view as soon as they arereceived. In some embodiments of the fifth aspect of the invention assoon as the higher resolution version of a zoomed image is received, thebrowser replaces the quickzoomed version with the higher resolutionimage. In some embodiments of the fifth aspect of the invention thequickzoom function scales subpixel optimized image color bitmaps up insize. In some embodiments of the fifth aspect of the invention a methodis provided wherein a 2× (or other scale) zoom button in the browseruser interface, which would allow a user to perform a 2× zoom around thelast location selected, is provided.

In some embodiments of the fifth aspect of the invention multipleresolutions, such as a standard 0.5× and 1×, are automaticallydownloaded so that the quickzoom function can alternate between the tworesolutions in response to a user's selection. The automatic downloadalso allows the higher resolution image to be ready for the zoomfunction shortly after the download.

In some embodiments the user could specify what type of elements thatare not shown, but which may be of interest, he or she wants displayed.In such embodiments the user selected elements are available for use bythe zoom function. In such embodiments the user selected elements areavailable for use in scrolling at the current resolution.

According to a sixth aspect of the present invention a ‘ZOOMCLICK’function is provided wherein a quickzoom on a portion of the screen isperformed. The portion is selected by the user clicking down on themouse button but the click is not recorded until the user releases thebutton. This lets user move the mouse to a desired position in a largerscale view in which it is easier to locate desired screen objects beforemaking a selection. In some embodiments of this sixth aspect of theinvention the user can turn the zoomclick feature on and off.

According to a seventh aspect of the present invention a ZOOM TEXT ENTRYfeature is provided. When using this feature a user clicks or otherwiseselects a text entry field shown on a screen at a first size. Inresponse a zoomed text entry field is shown at a larger size. Thisfeature can be very useful on small screen displays, such as manycurrent TV sets, that have a relatively low resolution, and withdisplays which are being dealt with from a distance, and thus have arelatively low perceptual resolution. It is useful because it allows theuser to see text being entered into a text entry field at a larger, andthus easier to read size, than text would appear in the text entry fieldif its size were not zoomed by this feature. This decreases the chancethat a user will fail to catch and correct typographical errors, andthus will tend to increase the ease and accuracy of use of such fields.

In some embodiments of this seventh aspect of the invention a keyboardand a separate text entry field pop up on the screen when a user clickson any text entry field shown in a web page. Once the user presses anenter button associated with the large pop-up text entry field, thesepop-up elements disappear from the screen. In some embodiments of theseventh aspect of the invention the image could zoom in on the actualtext entry field the user has clicked on, in a manner similar to thezoom click described above. In some embodiments of the seventh aspect ofthe invention when the user selects a text entry field a keyboard popsup on the screen. In some embodiments of the seventh aspect of theinvention when the user selects a text entry field a handwritingrecognition field pops up on the screen. In some embodiments of theseventh aspect of the invention when the user selects a text entry fielda voice recognition entry field pops up on the screen.

According to an eighth aspect of the present invention a magnifyingglass feature is provided wherein on a web browser in which a portion ofa smaller scale screen view of web content is zoomed, the portion of thesmaller scale screen shown in the zoomed scale moves around as the usermoves or clicks the pointing device. In some embodiments of this eighthaspect of the invention a user can toggle between the magnified andnormal small scale screen.

In some embodiments of the eighth aspect of the invention the zoom viewtext is shown in a higher resolution font, without text reflow. In someembodiments of the eighth aspect of the invention the screen displaysquickzoomed versions of images from the small scale view until or unlessthe browser receives higher resolution versions of the images. In someembodiments of the eighth aspect of the invention variable zoom scale isprovided.

According to a ninth aspect of the present invention rapid zoom controlsare provided wherein a browser has a user interface with buttons thatallow a user to rapidly change between different scale views of a webpage or other digital content.

In some embodiments of this ninth aspect of the invention the browseruser interface has a zoom button or command which, if selected before orafter the user selects a portion of the screen, zooms to that portion.In some embodiments of the ninth aspect of the invention the browseruser interface records the history of zoom sizes and has a back andforward control, similar to that used for history of web pages, to allowthe user to go back and forth between different views of a given page.In some embodiments the view history not only records the size but alsothe location of views, so that the user can navigate back and forthbetween views of a given web page or other digital content at differentlocations and/or sizes. In some embodiments of the ninth aspect of theinvention the system cache retains information that is helpful fordisplay at different sizes. This can include caching differentresolution representations of images and different size font bitmaps. Insome embodiments of the ninth aspect of the invention different fontsare used for different views. Although a browser could just blow-up thesize of the font bitmaps used in a small scale view for use in a largerscale view, the zoomed view would be more attractive and more easilyreadable if it used higher resolution bitmaps for the scaled upcharacters.

In some embodiments of the ninth aspect of the invention a quickzoomscaling of the prior view is performed if the new view is not in localmemory. In some embodiments of the ninth aspect of the invention aremote process generates the alternate zoomed views. In some embodimentsof the ninth aspect of the invention the first and/or zoomed view aredisplayed with subpixel optimization of text and/or images.

According to a tenth aspect of the present invention the user may selectto zoom out to see the whole page or at least what would be multiplenormal screens. This can be used for many purposes, such as enabling auser to more easily select desired portions of a page that wouldnormally extend across several screens. This enables a user to quicklyget a feeling for the size or layout of a page, and to enable a user toselect what part of the page is to be zoomed to. In some embodiments ofthis tenth aspect of the invention greeking could be used for all textbelow a certain size, and shading for all text of even a smaller size.

According to an eleventh aspect of the present invention a CENTERCLICKfunction is provided. Centerclick allows a user of a web browser to zoomto a peephole view (i.e., a view that shows only a portion of the widthat which a page has been laid out at) and allows the user to recenterthe peephole view where the user clicks.

According to a twelfth aspect of the present invention a user can selectsubpixel optimized views of images and text with variable zoom on a webbrowser. In some embodiments of this twelfth aspect of the invention thesystem interface allows a user to selected among three or more differentscalings.

According to a thirteenth aspect of the present invention a user isenabled to select a virtual resolution at which he or she desires a webpage to be laid out. The system, either at the browser, or on a proxyprocess at the website server or on a proxy server, lays out the webpage at that selected virtual resolution. Then the system causes thecontents of the web page to be laid out on the screen of the browser atthe browser's fixed resolution, using font bitmaps which have aresolution corresponding to that of the browser's screen.

According to a fourteenth aspect of the present invention a user isenabled to select a virtual resolution at which he or she desires a webpage to be laid out. The system, either at the browser, or on a proxyprocess at the website server or on a proxy server, lays out the webpage at that selected virtual resolution. Then the system causes thecontents of the web page to be laid out on the screen of the browser atthe browser's resolution, using font bitmaps and images which have beenscaled down as a function of the ratio between the virtual resolutionand the resolution of the browser's screen. The bitmaps representing thedown-scaled text and/or the images are subpixel optimized to increasetheir apparent resolution on the browser's screen.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group G

According to a first aspect of the present invention a process on afirst computer system generates a layout of a web page to be displayedon the screen of second computer system in response to input provided bya user into the second computer system. One or more elements in the webpage display are scaled down by the process on the first computer beforebeing downloaded to and displayed by the second computer. A font familythat has been selected for readability at pixel sizes of 10 pixels perem or less is used by the first computer in the layout and by the secondcomputer for the display.

In some embodiments of this first aspect of the invention wirelesscommunication is used between the first computer and second computer. Insome embodiments of the first aspect of the invention a web pagespecifies certain fonts for certain text, and the first computerperforms the layout and the second computer displays the certain textwith different fonts that have been optimized for readability at pixelsizes of 10 pixels per em or less. In some embodiments of the firstaspect of the invention a font family has been optimized for readabilityat pixel sizes of 8 pixels per em or less.

In some embodiments of the first aspect of the invention a firstcomputer makes foreground color changes to text elements which aredisplayed to increase the readability of subpixel optimized fonts.

In some embodiments of the first aspect of the invention the secondcomputer system has a user interface that allows a user to change thescale factor at which elements generated on the first computer systemare displayed on the second computer system. The scale factor isuploaded from the second computer to the first computer which uses itboth in determining how much to scale down elements in the web page, andin determining the size for the fonts to be used in the display of theweb page by the second computer.

In some embodiments of the first aspect of the invention the subpixeloptimized elements are text. In some embodiments non-linear colorbalancing is used in the subpixel optimization of text. In someembodiments of the first aspect of the invention the subpixel optimizedelements are images. In some embodiments of the first aspect of theinvention the subpixel optimized elements are text and images and adifferent algorithm is used to subpixel optimize fonts and images.

According to a second aspect of the present invention a method isprovided wherein a process on a first computer system repeatedlygenerates information to be displayed on the screen of second computersystem in response to input provided by a user into the second computersystem. The information generated by the first computer is downloaded tothe second computer, the user input is uploaded from the second computerto the first computer, and one or more elements in the display aresubpixel optimized for display the screen of the second computer. Thismethod is not limited to use in web browsing.

In some embodiments of this second aspect of the invention the subpixeloptimization is done by a first computer. In some embodiments of thesecond aspect of the invention the subpixel optimization is done by asecond computer.

In some embodiments of the second aspect of the invention the downloadis performed by wireless transmission.

In some embodiments of the second aspect of the invention the subpixeloptimized elements are text. In some embodiments non-linear colorbalancing is used in the subpixel optimization of text. In someembodiments of the second aspect of the invention the subpixel optimizedelements are images. In some embodiments of the second aspect of theinvention the subpixel optimized elements are text and images and adifferent algorithm is used to subpixel optimize fonts and images.

In some embodiments of the second aspect of the invention color changesare made to the elements that are displayed to increase the readabilityof subpixel optimized fonts.

In some embodiments of the second aspect of the invention the secondcomputer system has a user interface that allows the user to change thescale at which elements generated on the first computer system aredisplayed on the second computer system. In some embodiments scaling isperformed on the first computer. In some embodiments scaling isperformed on the second computer.

In some embodiments of the second aspect of the invention the processrunning on the first computer system is an application which does nothave programming for subpixel optimization. In some embodiments thesubpixel optimization is performed by routines on the first computerthat respond to calls made by the application to draw a screen element.

According to a third aspect of the present invention a process on afirst computer receives digital content including text. The process laysout the digital content for use in a downscaled display and downloadsthe display list to a second computer. A process on the second computerdisplays the information in the display list.

In some embodiments of this third aspect of the invention text stringsthat are referred to in the display list are downloaded before bitmapimages. The second computer starts to display the text strings beforereceipt of the images.

In some embodiments of the third aspect of the invention the download isperformed by wireless transmission. In some embodiments the display listis compressed with lossless compression before downloading.

In some embodiments of the third aspect of the invention the process ona first computer scales down the digital content. In some embodimentsthe process scales down images bitmaps. In some embodiments the processscales down font sizes. In some embodiments of the third aspect of theinvention a process on the second computer scales down the digitalcontent. In some embodiments of the third aspect of the invention aprocess on the first computer lays out digital content at one pixelresolution, the process on the second computer display the content atanother resolution.

In some embodiments of the third aspect of the invention text isdisplayed with subpixel optimized bitmaps. In some embodiments of thethird aspect of the invention images are displayed with subpixeloptimized images. In some embodiments of the third aspect of theinvention a process on the first computer scales the text font size as afunction of a display scale factor and the second computer displays textat scaled font sizes.

In some embodiments a process on the second computer responds to userinput to change a zoom factor. The zoom factor is used to vary the sizeof the portion of the layout to be displayed. The process uploads theselected zoom factor to a process on the first computer, which then usesit to determine the scale factor used to scale text font size. In suchembodiments a change in the zoom factor causes text to be displayed at adifferent font size but the text is not re-laid out. In some suchembodiments changes in the relative spacing between the characters of astring are used to compensate for differences in the relative size ofthe various characters of a string when displayed at different fontsizes.

In some embodiments a process on the second computer responds to userinput to change the layout resolution. The process uploads the selectedscale factor to a process on the first computer, which then uses it todetermine the scale factor used to scale text font size.

In some embodiments of the third aspect of the invention the firstcomputer downloads more display list layout information than fits on thedisplay of the second computer at one time.

In some embodiments the user interface on the second computer allows auser to move the screen display to a new location within the previouslydownloaded layout information. In response the second computer displayselements of the layout corresponding to the new location. In suchembodiments user interface input associated with location on the screenof the second computer are scaled and/or translated and sent back to thefirst computer which responds to them as if they had taken place in thecorresponding location in the display list.

According to a fourth aspect of the present invention a method isprovided wherein a process on a first computer system repeatedlygenerates information to be displayed on the screen of a second computersystem in response to input provided by a user into the second computersystem. The information generated by the first computer is downloaded tothe second computer. The user input is uploaded from the second computerto the first computer, and one or more elements displayed on the secondcomputer in response to information downloaded from the first computerare control objects. The second computer has programming that respondsto the user input associated with such control objects by appropriatelychanging the control object's appearance in the display and by storingstate information indicating the change made to the control objectsdisplay. The first computer includes programming that transmits a queryto the second computer for the state associated with a set of one ormore of the displayed control objects, and the second computer respondsto such a query by transmitting up to the first computer the stateassociated with each of the queried set of control objects. In someembodiments of this fourth aspect of the invention the communicationbetween the first and second computers is conducted by means of wirelesstransmission.

According to a fifth aspect of the present invention a process on afirst computer system repeatedly generates information to be displayedon the screen of a second computer system in response to input providedby a user into the second computer system. The user interface on thesecond computer allows the user to select to scroll the position of thescreen image relative to the layout of the information to be displayed.When the display at the new layout position would include the display ofinformation downloaded for use in the display at the previous layoutposition, the second computer reuses at least a portion of suchpreviously downloaded in formation, and the first computer selects whichinformation to download to the second computer for use in the display atthe new layout position so as to not to re-download such previouslydownloaded information which is to be so reused.

In some embodiments of this fifth aspect of the invention information isre-used by translating a portion of the bitmap generated for the displayat the old layout position for use in the display at the new layoutposition. In some embodiments of the fifth aspect of the invention thedownload is performed by wireless transmission.

According to a sixth aspect of the present invention a browser processon a first computer receives a web page. The process lays out the webpage and creates a corresponding display list including a list ofstrings and images and their locations. The process then downloads thedisplay list by wireless communication to a thin client browser. Bitmapsof images are sent down after strings and their locations. The thinclient browser starts to display strings at locations indicated in thedisplay list before images are all received. Images are displayed atlocations indicated in the display list when received.

In some embodiments of this sixth aspect of the invention the wirelesscommunication is by means of a local area wireless network. In someembodiments of the sixth aspect of the invention the wirelesscommunication is by means of a cellular wireless system.

According to a seventh aspect of the present invention a first computerscales down and lays out a web page. The first computer compresses thelayout information, and downloads it via wireless connection to a secondcomputer. The second computer decompresses the layout information, anddisplays it on its screen. The second computer receives user inputsrelative to location on its display of the web page and sends the userinputs to the first computer. The user inputs are scaled tocorresponding locations in the layout of the web page stored on thefirst computer. The first computer detects if the scaled user inputcorresponds to clicking on a link in web page. If it does correspond itresponds by accessing the linked web page.

In some embodiments of this seventh aspect of the invention thecompression includes lossless compression of text. In some embodimentsof the seventh aspect of the invention the compression includes losslesscompression of images.

In some embodiments of the seventh aspect of the invention downloadedand displayed images are subpixel optimized image bitmaps. In someembodiments of the seventh aspect of the invention text is displayed bythe second computer by subpixel optimized font bitmaps.

According to an eighth aspect of the present invention a method of webbrowsing is provided. The method is comprised of the following. Agreeked representation of a web page is downloaded. Each of one or moreportion of text is represented as a string length starting at each ofone or more locations in a layout of the page. At least a portion of theweb page in which the one or more string lengths are represented attheir associated layout positions by greeking is displayed. Subsequentlythe string characters associated with one or more of the portions oftext are downloaded and the character string associated with one or moreof the portion of texts is displayed.

In some embodiments of this eighth aspect of the invention a method isprovided that further includes allowing a user to select one or more ofthe portions of text represented by the greeking and wherein thesubsequent downloading and subsequent displaying includes downloadingand displaying the string of characters associated with one or more ofthe selected portions of text. In some embodiments the subsequentdisplaying includes displaying a part of the web page, including thecharacter strings of the selected portions of text, at a larger scalethan the same portion of the web page shown with the greekedrepresentations was shown.

In some embodiments the subsequent displaying includes displaying one ormore characters strings of the selected portions of text using charactershapes having a larger size than is represented by the greekedrepresentation after the text has been reflowed across line boundariesto determine new line breaks occasioned by the larger character shapesizes.

In some embodiments of the eighth aspect of the invention the greekedrepresentation represents a body of multi-lined text in the web page asa series of string lengths, each representing the length of one line oftext and each having an associated layout position in the web page. Inother embodiments it could represent multiple lines of text by aposition and distance between them to save bandwidth. In someembodiments the subsequent downloading of a character string includesdownloading a separate character string in association with individualsingle line string lengths. The subsequent displaying of characterstrings includes successively replacing in the display the greekingassociated with the individual single line string with the shapes of thecharacter of their associated characters string as those individualcharacters strings are downloaded.

In some embodiments the download proceeds from the top of the pagefirst. In such embodiments the download proceeds across side by sidetext blocks. In some embodiments of the eighth aspect of the inventionthe order in which different portions of text have their individualcharacters downloaded and displayed varies as a function of thedifferent properties that the different text portions have associatedwith them by the web page. In some embodiments font size is one of theproperties used to control the order in which different portions of thetext have their characters downloaded and displayed. Other propertiescould include other attributes such as heading level, colored textversus black and white text, links, etc.

In some embodiments of the eighth aspect of the invention some of thestring lengths have height values associated with them that indicate theheight of the characters in the text portion that the string lengthrepresents. The displaying of the web page in which the string lengthsare represented by greeking includes causing the height of the greekingused to represent a given string length to vary as a function of thestring length's corresponding height value.

In some embodiments of the eighth aspect of the invention images can beshown in abbreviated form first. In some embodiments the outline of apicture rectangle is shown first. In some embodiments a low resolutionimage or character is shown first. In some embodiments of the eighthaspect of the invention a user can specify the download order. In someembodiments of the eighth aspect of the invention the download occursfrom a proxy server. In some embodiments of the eighth aspect of theinvention a user supplies input that is used to indicate which to seefirst.

According to a ninth aspect of the present invention a method ofdownloading and displaying a web page that contains different portionsof text having different properties associated with them by the web pageis provided. The method includes (a) laying out the web page beforedownloading it to a browser computer, (b) downloading representations ofindividual portions of text with an indication of the layout location ofeach such portion, (c) displaying representations of the downloadedindividual portions of text as a function of the order in which they aredownloaded, and (d) the order in which different portions of text aredownloaded and displayed is controlled as a function of the location towhich the portions have been assigned within the layout.

In some embodiments of this ninth aspect of the invention the order inwhich different portions of text is downloaded and displayed iscontrolled as a function of the relative closeness of the text portionsto the top of the layout. Text portions that are closer to the top ofthe layout are downloaded before the text portions which are closer tothe bottom of the layout. In some embodiments of the ninth aspect of theinvention the downloaded representations of individual text portionsincludes, for each downloaded text portion, a string length and theindication of the layout position. Displaying a representation of thedownloaded text portions includes representing the downloaded stringlengths at their associated layout positions by greeking. In someembodiments of the ninth aspect of the invention the downloadedrepresentations of individual text portions include, for each downloadedtext portion, a string of one or more characters corresponding to thetext of the text portion and the indication of the layout position.Displaying a representation of the downloaded text portions includesrepresenting the downloaded character strings at their associated layoutpositions by the shapes of their respective characters.

In some embodiments of the ninth aspect of the invention downloadedinformation is received and displayed by a browser computer. The layoutis performed, and the downloaded information is downloaded from one ormore remote computers. The browser computer allows a user to select aportion of the web page for preferential display while the page is beingdisplayed. The browser computer responds to the user's selection of aportion of the web page for preferential display by communicating theselection to one of the remote computers. The remote computer respondsto the communication of the selection of a portion of the web page byaltering the download of the web page to support the selectedpreferential display.

In some embodiments a method of providing a preferential selection toindicate a portion of a page to be downloaded first is provided. Theselection indicates that the selected portion of the web page is to bedownloaded and displayed before other portions of the web page. Theremote computer alters the download of the web page to support theselected preferential display by causing the selected portion of the webpage to be downloaded before other, non-selected portions, of thewebpage. In some embodiments the selection indicates that the selectedportion of the web page is to be displayed at a larger size than that atwhich the page was being displayed before the selection. The remotecomputer alters the download of the web page to support the selectedpreferential display by causing the selected portion of the web page tobe downloaded before other non-selected portions of the web-page and thebrowser displays elements of the selected portion of the web page at thelarger size.

In some embodiments the browser computer has a screen on which thedisplay is made. The selection can include portions of the screen whichcorrespond to portions of the web page which have not yet been displayedat the time of the selection. The communication to the remote computerindicates that the selection includes the portion of the web pagecorresponding to the selected portion of the screen. In some embodimentsof the ninth aspect of the invention image locations are downloaded withtext descriptions and a user can select which to have downloaded first.In some embodiments of the ninth aspect of the invention major divisionsof the page are downloaded to let a user select which to have downloadedfirst. Major divisions include table columns, layers, or other spatialdivisions.

In some embodiments a user can select to zoom into a downloaded imagelocation or text description. In some embodiments layers, tableelements, etc. are indicated by outlines and letter uses.

In some embodiments of the ninth aspect of the invention a method ofdownloading and displaying a web page which contains different portionsof text having different properties associated with them by the web pageis provided. The method is comprised of (a) laying out the web pagebefore downloading it to a browser computer, (b) downloading individualportions of the web page's text, including one or more characters, withan indication of the layout location of each such portion, (c)displaying the individual portions of text as a function of the order inwhich they are downloaded. The order in which different portions of textare downloaded and displayed is controlled as a function of thedifferent properties which the different text portions have associatedwith them by the web page. In some embodiments font size is one of theproperties used to control the order in which different portions of thetext have their characters downloaded and displayed. In some embodimentsit is not necessary to download images because the position of text isknown. In such embodiments small ones could be downloaded first andlarge ones last. In some embodiments banner advertisements could bedownloaded last.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group H

According to a first aspect of the invention an application calls theoperating system to display an image. The operating system call causesimages received from the application to be scaled-down by a scalefactor, subpixel optimized, and displayed.

In some embodiments of this first aspect of the invention an operatingsystem function scales down and subpixel optimizes images. In someembodiments of the first aspect of the invention hooks intercept theoperating system calls. The function evoked by the hook in response tothe call scales down and subpixel optimizes an image instead of thecorresponding operating system function.

In some embodiments of the first aspect of the invention images that arescaled down and subpixel optimized include bitmaps from theapplication's graphical user interface. In some embodiments of the firstaspect of the invention the application is a browser. In someembodiments of the first aspect of the invention the application is nota browser.

According to a second aspect of the invention a bitmap draw routine iscalled to draw a bitmap and a separate string draw routine is called todraw a string with a particular font. The bitmap with which the bitmapdraw routine is called is a subpixel optimized bitmap. The font withwhich the string draw routine is called is a subpixel optimized font. Insome embodiments of this second aspect of the invention these calls aremade by an application program other than the operating system. In someembodiments these calls are made by a browser program. In someembodiments of the second aspect of the invention these calls are madeby a program running in a thin client.

In some embodiments the subpixel optimized image is a scaled subpixeloptimized image created by a second computer, different from that onwhich the thin client is located, and that scaled, subpixel optimizedimage has been downloaded from the second computer to the browsercomputer. In some embodiments of the second aspect of the invention theimages include bitmaps from the application's graphical user interface.In some embodiments of the second aspect of the invention theapplication is a browser. In some embodiments of the second aspect ofthe invention the application is not a browser.

According to a third aspect of the invention an application calls theoperating system to get font measurements for a certain string in acertain font. Respective operating system calls cause font metrics for asubstitute font to be given to the application, use font measurements tolayout text, and substitute the font used to display the laid out text.

In some embodiments of this third aspect of the invention an applicationcalls the operating system to display an image. Operating system callscause images received from the application to be scaled-down by a scalefactor and displayed. In some embodiments the operating system call isintercepted to allow a scaled screen generator function to work. In someembodiments the process of scaling down an image also subpixel optimizesit.

In some embodiments the application and the operating system are on afirst computer. The application lays out one or more images and lays outthe text as one or more single line strings and assigns a relativelocation within the layout to each string and each image. The strings,the images, and their locations are downloaded to a second computer. Thesecond computer displays the scaled down images and displays text usingsubstituted fonts at positions on the second computer's screen thatcorrespond to the respective downloaded locations. In some suchembodiments the layout is performed by the application at a firstresolution and all or a portion of the laid out elements are displayedon the second computer.

In some embodiments of the third aspect of the invention the substitutedfonts are subpixel optimized fonts. In some embodiments of the thirdaspect of the invention an operating system function performs the fontsubstitution. In some embodiments of the third aspect of the invention ahook intercepts such an operating system call and a function evoked bythe hook in response to the call makes the font substitution instead ofthe operating system function whose call was intercepted. In someembodiments of the third aspect of the invention subpixel optimizedfonts are used in the operating system of the computer.

In some embodiments of the third aspect of the invention the applicationis a browser. In some embodiments of the third aspect of the inventionthe application is not a browser.

According to a fourth aspect of the invention the metrics for subpixeloptimized fonts are used in the first computer to layout the digitalcontent. The layout information is downloaded to the second computer,and the laid out fonts are displayed with subpixel optimized fonts.

In some embodiments of this fourth aspect of the invention the digitalcontent are web pages. In some embodiments of the fourth aspect of theinvention the digital content are windows drawn by applicationsincluding graphical user interface elements.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group I

According to a first aspect of the present invention a server systemreceives requests for fonts over a computer network and responds to suchrequests by sending the requested fonts in a subpixel optimized formback over the computer network. Here server means a computer that sendsfonts in response to a request. It could actually be operating in apeer-to-peer mode.

In some embodiments of this first aspect of the invention the fonts sentin response to the request are subpixel optimized bitmaps. In someembodiments of the first aspect of the invention the fonts sent inresponse to the request are outline fonts that have been hinted fordisplay at subpixel resolution. In some embodiments of the first aspectof the invention the requests to the server system are for subsets ofthe characters of a given font. In such embodiments the requests to theserver system are for a subset of the roman font. In some embodiments ofthe first aspect of the invention the request to the server system is anHTTP request. In some embodiments the HTTP request contains an url thatcontains a path specification that identifies a set of one or more fontoutlines or font bitmaps.

In some embodiments of the first aspect of the invention the requestindicates whether subpixel optimized or non-subpixel optimized fonts areto be sent in response to the request. The fonts downloaded either areor are not subpixel optimized, respectively, in response to such anindication. In some embodiments of the first aspect of the invention theserver responds to the request by dynamically creating subpixeloptimized font bitmaps for its requested character and font from a fontoutline.

In some embodiments the server caches the font bitmap so created. If thebitmap is in the cache the next time a request for it is received, theserver serves the cached bitmap rather than creating the bitmap anewfrom its corresponding font outline. In some embodiments of the firstaspect of the invention the server stores font bitmaps and serves suchstored bitmaps in response to requests. This can include storage incache as referred to above.

According to a second aspect of the invention an internet serverreceives HTTP requests for character-font shapes in media that it didnot serve and downloads the requested character-font shapes to therequesting machine in response.

According to a third aspect of the invention a web server serves fontsover the Internet in response to HTTP requests for subsets of individualcharacters and charges an account for the downloads.

In some embodiments of this third aspect of the invention the web serverhas software that automatically allows parties to place fonts for saleon the network. In some embodiments the site has software thatautomatically checks how close a font being offered is to another fontand provides a warning if it is too close. In some embodiments of thethird aspect of the invention the web server charges as a function ofthe number of downloads. In some embodiments of the third aspect of theinvention the request identifies the source of the media containing tagsthat identify the requested fonts and the charge is to the source ofthat media. In some embodiments of the third aspect of the invention therequest identifies the party receiving the requested font and the chargeis to that party.

According to a fourth aspect of the invention the serving web pages haveURLs that point to a remote internet site that defines where a browserprogram receiving such served web pages can automatically obtain one ormore character-font shapes for use in the display of the page.

According to a fifth aspect of the invention a computer receives digitalcontent. The computer sends an HTTP request over a computer network forbitmaps of the character font shapes it needs to render a page that itdoes not have. When the computer receives the requested font bitmaps ituses them to render the page and caches them. When the web browserreceives another page it checks its cache to see if it has all of thecharacter font bitmaps needed to render the page. The web browser sendsan http request over a computer network for the character font bitmapsit needs to render the page. This claim is not limited to use on smallscreen displays or with subpixel optimization. It is not limited to webbrowsing nor is it limited to requesting individual characters of afont.

In some embodiments of this fifth aspect of the invention the browserrequests subsets of a font's characters. In some embodiments suchsubsets are less than all of the characters in the roman alphabet. Insome embodiments all subsets are individual characters. In someembodiments of the fifth aspect of the invention the font bitmaps aresubpixel optimized bitmaps.

According to a sixth aspect of the invention the selling and/orlicensing computer programming records in a machine readable apparatusor product to multiple different commercial customers that automaticallyrequest fonts from the same internet server.

In some embodiments of this sixth aspect of the invention it is theselling software that does the recording. In some embodiments of thesixth aspect of the invention distributing software responds to arequest for a font that it does not have by seeking the font from aglobal internet URL. In some embodiments of the sixth aspect of theinvention programming uses HTTP requests to request fonts from differentparties. In some embodiments the http request contains an URL thatcontains a path specification that identifies a set of one or more fontoutlines or font bitmaps. In some embodiments of the sixth aspect of theinvention programming caches fonts of one or more characters that havebeen previously requested and received and determines whether to requesta given combination of one or more characters from the server as afunction of whether those one or more characters are currently cached.

In some embodiments of the sixth aspect of the invention the programmingis sold as a part of a web browser. In some embodiments the programmingis sold as a part of a thin client web browser.

According to a seventh aspect of the invention a web browser receives aweb page and sends a request over the internet for the individualcharacter font shapes that it does not have but that it needs to renderthe page. When the browser receives the requested fonts it uses them torender the page and it caches them. When the web browser receivesanother page it checks its cache to see if it has all of the charactersneeded to render the page and sends a request over the internet for theindividual character font shapes its needs to render the page. Browserhere is meant to include a normal browser, a proxy browser, and a thinclient. This claim is not limited to use on small screen displays orwith subpixel optimization nor is it limited to use with a web page thathas been downloaded.

In some embodiments of this seventh aspect of the invention the fontsare subpixel optimized fonts. In some embodiments of the seventh aspectof the invention the request for fonts is an HTTP request. In someembodiments the HTTP request includes an URL that specifies a path namethat uniquely identifies an individual character of an individual font.

According to an eighth aspect of the invention the client sends and/orthe server receives an http request for one or more font bitmaps with anurl that contains a path specification identifying a set of one or morefont outlines or font bitmaps.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group J

According to a first aspect of the invention text is displayed in editfields that use sub-pixel optimized fonts.

According to a second aspect of the invention graphic user interface(GUI) elements such as labels on buttons, check boxes, radio buttons,menu items, and pop-up keyboards display with sub-pixel optimized fonts.

According to a third aspect of the invention a call for a function todraw a basic geometric shape on a screen is responded to by rendering asubpixel optimized version of that basic shape.

In some embodiments of this third aspect of the invention the geometricfigure is a straight line, a curved line, an ellipse, or a rectangle. Insome embodiments of the third aspect of the invention a callmathematically defines a shape that partially covers one or more pixelson a subpixel addressable screen. Subpixel optimization is used torender the coverage of such partially covered pixels with the higherperceptible spatial resolution that is made possible by assigningdifferent luminosity values to different subpixels of the individualpartially covered pixels as a function of the coverage by the shape ofthe portion of such pixels corresponding to individual subpixels, so asto visually indicate the shapes intermediary coverage of such pixels. Insome embodiments where the shape is intended to be monochromatic colorbalancing is used to remove color imbalances introduced in the intendedmonochromatic color of the shape by assigning luminosity values tosubpixels based on their coverage by the shape. In such embodimentsnon-linear color balancing is used. In some embodiments of the thirdaspect of the invention a specific foreground color has been specifiedfor the shape. Foreground color is shifted toward a more grayscale valueto improve the spatial visual resolution.

In some embodiments of the third aspect of the invention calledfunctions and the subpixel optimization are part of an operating system.In some embodiments of the third aspect of the invention the calledfunction is part of an operating system but the subpixel optimization isnot.

According to a fourth aspect of the invention a call for a function todraw a bitmap of a gui element is responded to by rendering a subpixeloptimized version of that bitmap.

In some embodiments of this fourth aspect of the invention the call isspecifically for the creation of a gui element. In some embodiments ofthe fourth aspect of the invention the call requests that a bitmap bedrawn and the bitmap to be drawn is a gui element.

In some embodiments of the fourth aspect of the invention the bitmap hasalready been subpixel optimized by the time of the call. In someembodiments of the fourth aspect of the invention the bitmap has notbeen subpixel optimized by the time of the call and its associatedbitmap is both scaled down and subpixel optimized in response to thecall.

In some embodiments bicolor subpixel optimization is used on a bitmap.In some embodiments multicolor subpixel optimization is used on abitmap. In some embodiments subpixel optimized font bitmaps aresuperimposed on an image of gui elements.

According to a fifth aspect of the invention a method of displaying anoriginal image with a corresponding rollover image in which both theoriginal image and the rollover image are subpixel optimized images isprovided.

According to a sixth aspect of the invention in subpixel optimizedanimations the multiple images of the animation are each subpixeloptimized.

According to an seventh aspect of the invention DVD video output with agiven resolution is displayed on a subpixel addressable display array ofwhole pixels. The display array has a lower resolution in at least onedimension than the given resolution of the DVD output. Subpixeloptimization is used to display the DVD video output at a higherperceptible spatial resolution than the display array's whole pixelresolution. In some embodiments of this eighth aspect of the invention auser can change the display array's resolution.

According to a eighth aspect of the invention HDTV video output with agiven resolution is displayed on a subpixel addressable display array ofwhole pixels having a lower resolution in at least one dimension thanthe given resolution of the HDTV output. Subpixel optimization is usedto display the DVD video output at a higher perceptible spatialresolution than the display array's whole pixel resolution. In someembodiments of this eighth aspect of the invention a user can change thedisplay array's resolution.

According to a ninth aspect of the invention multimedia output that canrepresent images, including moving images, and bicolor shapes, such astext, including moving bicolor shapes is displayed. Subpixeloptimization is used on both the images and the shapes.

According to an tenth aspect of the invention web applets are downloadedover a computer network. The applets are displayed as subpixel optimizedbitmaps on a client computer.

In some embodiments of this tenth aspect of the invention a subpixeloptimized bitmap is downloaded as part of applet is copied onto theclient screen. In some embodiments of the tenth aspect of the inventiona new subpixel optimized bitmap is generated onto a client screen.

According to an eleventh aspect of the invention a sub-pixel optimizedvideo is downloaded and displayed on the screen of a client computer.

In some embodiments of this eleventh aspect of the invention the videois requested by a viewer computer. The requested video is downloadedfrom a first computer to a proxy computer. The video is then subpixeloptimized by the proxy computer and downloaded to, and displayed on, theviewer computer.

In some embodiments of the eleventh aspect of the invention the video iscompressed after it has been subpixel optimized. The video is downloadedin compressed form, is uncompressed, and then displayed. In someembodiments frame to frame compression is used in the compression of thesub-pixel optimized video. In some embodiments of the eleventh aspect ofthe invention the video is scaled down at the same time that it issubpixel optimized.

According to a twelfth aspect of the invention graphic elements aresub-pixel optimized for use in animation.

In some embodiments of this twelfth aspect of the invention graphicelements have been downscaled from a source image and subpixel optimizedbefore the program session that is drawing them is run. In someembodiments of the twelfth aspect of the invention graphic elements aredownscaled from a source image and subpixel optimized during the programsession that is drawing them. In some embodiments graphic elements on asubpixel addressable screen are moved in a manner that shifts the imagesposition relative to the pixel pattern that represents it at differentpositions to reflect the position of the image relative to the pixelsthat represent it at a higher spatial resolution than the resolution ofwhole pixels in the display. In some embodiments of the twelfth aspectof the invention graphic elements are moved in units of whole pixels inresponse to animated movement calculated in finer increments than wholepixels.

According to a thirteenth aspect of the invention the position of animage being displayed on a subpixel addressable display is moved inincrements of motion finer than whole pixels. The image is displayedwith different subpixel optimized bitmaps at different positions in suchmovement to reflect the different coverage of the different positions

In some embodiments of this thirteenth aspect of the invention the imageis of a bitmap. In some embodiments of the thirteenth aspect of theinvention the image is of a character shape. In some embodiments of thethirteenth aspect of the invention the image is of vector drawnnon-character shape.

According to a fourteenth aspect of the invention the image is displayedin electronic ink using subpixel optimized bitmaps.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

Summary of the Invention Re Innovation Group K

According to a first aspect of the present invention a method ofbrowsing web pages over the internet is provided.

A computing device that has a screen in the portrait orientation has ahigher whole pixel resolution in the vertical direction than in thehorizontal direction. The screen has pixels comprised of separatelyaddressable differently colored sub-pixels. Each sub-pixel of a pixelextends across the width of the pixel one above the other so that thesub-pixel resolution of the display is higher in the vertical directionthan in the horizontal direction. An operating system has software fordisplaying a graphical user interface on the screen in the portraitorientation. Browsing software runs on the browser computer thatdisplays one or more web pages on the screen in a landscape orientation.Landscape orientation is perpendicular to the portrait orientation sothe higher subpixel resolution will extend in a horizontal directionrelative to the display of the web page. Web pages are displayed in thelandscape orientation according to the following method. Bitmaps offonts that have a higher horizontal sub-pixel resolution than verticalsubpixel resolution are used. The luminosity of eachhorizontally-displaced, differently-colored, subpixel of a given pixelused in the display of a portion of a given character's shape is derivedas a function of the extent to which the outline of the givencharacter's shape covers that individual sub-pixel.

In some embodiments of this first aspect of the invention the browsersoftware also displays sub-pixel resolution images in the landscapeorientation. In such displays the luminosity of each differently coloredsubpixel of a given pixel is derived from a different area of a higherresolution version of the same image. In some embodiments of the firstaspect of the invention the operating system only draws gui elements inthe portrait orientation. In some embodiments of the first aspect of theinvention the browser software downloads the sub-pixel fonts that havebeen optimized for display with a higher horizontal than verticalsub-pixel resolution.

According to a second aspect of the invention a computing system has ascreen with sub-pixel resolution that is higher in a first directionthan a perpendicular second direction. The operating system has a guithat can be displayed in a first orientation in which the firstdirection is vertical. The operating software receives digital contentthat includes a text string and displays the individual characters ofthe text string using corresponding font bitmaps in a second,perpendicular orientation.

In some embodiments of this second aspect of the invention the operatingsystem can only display a majority of its gui elements in the firstorientation. In some embodiments of the second aspect of the inventionthe operating system can display a majority of its gui elements in boththe first and the second orientation. In some embodiments of the secondaspect of the invention font bitmaps have been subpixel optimized forhigher subpixel resolution in their horizontal direction.

In some embodiments of the second aspect of the invention a computersystem is a hand-held or smaller computer system. In some embodiments ofthe second aspect of the invention the digital content is laid out fordisplay in the second orientation on a remote computer and is downloadedto the computing system for display.

In some embodiments of the second aspect of the invention a text stringis part of digital content that includes images as well as text andimages are also displayed at the second orientation. In some embodimentsof the second aspect of the invention digital content includes webpages. In some embodiments of the second aspect of the invention digitalcontent includes screen images that have produced by a computerapplication.

According to a third aspect of the invention computing system has ascreen with sub-pixel resolution that is higher in a first directionthan a perpendicular second direction. It has an operating system thathas a gui that can be displayed in a first orientation in which thefirst direction is vertical. The operating system receives digitalcontent including text and displays it in a second, perpendicularorientation. It uses one or more bitmaps that have been subpixeloptimized for a higher subpixel resolution in their horizontaldirection.

In some embodiments of this third aspect of the invention the operatingsystem can only display a majority of its gui elements in a firstorientation. In some embodiments of the third aspect of the inventionthe operating system can display a majority of its gui elements in boththe first and the second orientation. In some embodiments of the thirdaspect of the invention the computer system is a hand-held or smallercomputer system.

In some embodiments of the third aspect of the invention a text stringis part of digital content that includes images and the images are alsodisplayed in the second orientation. In some embodiments the digitalcontent includes web pages. In some embodiments the digital contentincludes screen images produced by a computer application.

In some embodiments of the third aspect of the invention digital contentis laid out for display in the second orientation on a remote computerand is downloaded to the computing system for display.

According to a fourth aspect of the invention a handheld computingsystem has a screen with a whole pixel resolution that is higher in afirst direction than in a perpendicular second direction. The hand-heldcomputing system has an operating system that has a gui that can bedisplayed in a first orientation where the first direction is vertical.Digital content is displayed in the second, perpendicular orientation.

In some embodiments of this fourth aspect of the invention the operatingsystem can only display gui elements in first orientation. In someembodiments of the fourth aspect of the invention the operating systemcan display gui elements in both a first and a second orientation. Insome embodiments of this fourth aspect of the invention an applicationseparate from the operating system displays the digital content and thatapplication generates its own graphical user interface that is displayedat the second orientation.

In some embodiments of this fourth aspect of the invention the digitalcontent includes a web page. In some embodiments a web page isscaled-down before it is displayed. In some embodiments of this fourthaspect of the invention digital content is laid out for display in thesecond orientation on a remote computer and is downloaded to thecomputing system for display.

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

All of the above innovations relate not only to a computerized method,but also to a computerized system including one or more computers andpossibly the network interconnecting them configured or programmed toexecute such methods, and to computer programming recorded in machinereadable memory which can be used on one or more computers to executesuch methods.

Other aspects of the invention not summarized above are shown in thefollowing “Detailed Description Of Some Preferred Embodiments.”

BRIEF DESCRIPTION OF THE DRAWINGS

These and other aspects of the present invention will become moreevident upon reading the following description of the preferredembodiment in conjunction with the accompanying drawings, in which:

FIG. 1 illustrates a process used according to some aspects of thepresent invention to improve Web browsing and/or display of other typesof computer generated content, particularly on systems with relativelylow-resolution screens.

FIG. 2 illustrates a networked computing environment in which aspects ofthe invention can operate that includes a portable browser, a proxyserver, a Web server, and a font server.

FIG. 3 illustrates an alternative networked computing environment inwhich aspect of the invention can operate that includes a browser and aWeb server.

FIG. 4 illustrates a second alternative networked computing environmentin which aspects of the invention can operate that also includes abrowser and a Web server.

FIG. 5 illustrates a third alternative networked computing environmentin which aspects of the invention can operate that includes a browserand a Web server as well.

FIG. 6 illustrates a computer system in which aspects of the inventioncan operate that contains standard Web content to be displayed andbrowser functionality containing a process for scaling and/or subpixeloptimizing that content.

FIG. 7 illustrates an alternative computer system in which aspects ofthe invention can operate that contains the content to be displayed, aproxy process for scaling and/or subpixel optimizing the content, andbrowser functionality.

FIG. 8 illustrates a second alternative computer system in which aspectsof the invention can operate that contains previously scaled and/orsubpixel-optimized content.

FIG. 9 illustrates a known vertically striped RGB LCD display device.

FIG. 10 illustrates some of the aspects of the invention involved inperforming the subpixel optimization of both images and text referred towith regards to steps 108 and 112 of FIG. 1, respectively.

FIG. 11 illustrates the level of readability provided by one currentembodiment of the invention when displaying standard Web content on a320 by 240 color display.

FIG. 12 illustrates the mapping of a pixel and subpixel grid, used in alower resolution display device, over a portion of a higher resolutionsource bitmap image 102.

FIG. 13 is an expansion of a section of the mapping grid of FIG. 12.

FIG. 14 illustrates the positioning of a window over the source imageused to calculate the luminosity of a red (R) subpixel of the lowerresolution display device.

FIG. 15 illustrates the positioning of such a window used to calculatethe luminosity of a green (G) subpixel of the lower resolution displaydevice.

FIG. 16 illustrates the positioning of such a window used to calculatethe luminosity of a blue (B) subpixel of the lower resolution displaydevice.

FIG. 17 illustrates scan lines used in a scan line coverage method tocalculate the subpixel luminosity of a red subpixel on a lowerresolution display device by estimating the portion of the redsubpixel's associated window in a higher resolution source image that iscovered by one or more pixel of different colors.

FIG. 18 illustrates similar used to calculate the luminosity of a green(G) subpixel of the lower resolution display device.

FIG. 19 illustrates scan lines similar to those shown in FIGS. 17 and 18except that they are used to calculate the luminosity of a blue (B)subpixel of the lower resolution display device.

FIG. 20 is a repeat of FIG. 17 provided on the same sheet as FIGS. 21and 22 for ease of comparison.

FIG. 21 illustrates the portions of the horizontal scan line shown inFIG. 20 that are covered by different source image pixels within the redpixel's source image window.

FIG. 22 illustrates the portions of the vertical scan line shown in FIG.20 that are covered by different source image pixels within the redpixel's source image window.

FIG. 23 is identical to FIG. 18 and is provided on the same sheet asFIGS. 24 and 25 for ease of comparison.

FIG. 24 illustrates the portions of the horizontal scan line shown inFIG. 23 that are covered by different source image pixels within thegreen pixel's source image window.

FIG. 25 illustrates the portions of the vertical scan line shown in FIG.23 that are covered by different source image pixels within the greenpixel's source image window.

FIG. 26 is identical to FIG. 19 and is provided on the same sheet asFIGS. 27 and 28 for ease of comparison.

FIG. 27 illustrates the portions of the horizontal scan line shown inFIG. 26 that are covered by different source image pixels within theblue pixel's source image window.

FIG. 28 illustrates the portions of the vertical scan line shown in FIG.26 that are covered by different source image pixels within the bluepixel's source image window.

FIG. 29 is a highly simplified pseudocode description of a subpixeloptimization method that calculates subpixel luminance values based online coverage values, such as the line coverage values illustrated withregard to FIGS. 17 through 28.

FIG. 30 illustrates how two horizontal and two vertical scan lines canbe used on alternate embodiments of “line coverage” methods forcalculating the colors of pixels in subpixel-optimized scaled images.

FIG. 31 illustrates how two diagonal scan lines can be used on alternateembodiments of “line coverage” methods for calculating the colors ofpixels in subpixel-optimized scaled images.

FIG. 32 illustrates how a combination of two diagonal, one horizontal,and one vertical scan lines can be used on alternate embodiments of“line coverage” methods for calculating the colors of pixels insubpixel-optimized scaled images.

FIG. 33 illustrates line coverage for two horizontal coverage lines at a½ horizontal and vertical scaling.

FIG. 34 illustrates line coverage for two vertical coverage lines at the½ horizontal and vertical scaling shown in FIG. 33.

FIG. 35 illustrates line coverage for two horizontal coverage lines atapproximately a ⅖ horizontal and vertical scaling.

FIG. 36 illustrates line coverage for two vertical coverage lines at theapproximately ⅖ horizontal and vertical scaling shown in FIG. 35.

FIG. 37 illustrates line coverage for two horizontal coverage lines atapproximately a ⅔ horizontal and vertical scaling.

FIG. 38 illustrates line coverage for two vertical coverage lines at theapproximately ⅔ horizontal and vertical scaling shown in FIG. 37.

FIG. 39 illustrates the source image pixel window used in an “areacoverage” method of calculating the color values of a subpixel-optimizedscaled image.

FIG. 40 is similar to FIG. 39 except that it uses different hatching toillustrate the areas of different source image pixels within a sourceimage window that are used to calculate a subpixel's luminosity valueaccording to one such “area coverage” method.

FIG. 41 is a highly simplified pseudocode description of a subpixeloptimization method that calculates subpixel luminance values based onan area coverage values, such as those discussed with regard to FIGS. 39and 40.

FIG. 42 illustrates a source image window and associated scan lines thatcan be used in the production of a scaled bicolor subpixel-optimizedimage of a bitmap image to associated a luminosity value with a redsubpixel.

FIG. 43 illustrates a source image window and associated scan lines thatcan be used in the production of a scaled bicolor subpixel-optimizedimage of a bitmap image to associate a luminosity value with a greensubpixel.

FIG. 44 illustrates a source image window and associated scan lines thatcan be used in the production of a scaled bicolor subpixel-optimizedimage of a bitmap image to associate a luminosity value with a bluesubpixel.

FIG. 45 illustrates the luminosity of a set of source image grayscalepixels associated with a portion of an RGB subpixel display grid.

FIG. 46 illustrates how the luminosity associated with an individualsubpixel shown in FIG. 45 is distribution under a traditional linearfiltering method.

FIG. 47 illustrates subpixel luminosity values that result from thetraditional linear filtering method shown in FIG. 46 being applied tomultiple subpixels in an pixel row.

FIG. 48 illustrates the distribution of the minimum subpixel luminosityvalues under a non-linear filtering.

FIG. 49 illustrates the distribution of the excess luminosity valuesunder a continuation of the non-linear filtering method shown in FIG.48.

FIGS. 50 through 52 compare, respectively, the original source pixelluminosities with the results of the linear and non-linear filteringmethods.

FIG. 53 is a highly simplified pseudocode representaton of a softwaremethod for creating a subpixel-optimized representation of a bicolorbitmap.

FIG. 54 is a flow diagram of a process to allow a user to dynamicallytradeoff color and positional resolution.

FIG. 55 illustrates the mapping between a character-font shape definedby an outline font description and an array of pixels, having subpixels,used to represent that shape on a subpixel addressable display;

FIG. 56 is a screen shot of a 320×240 screen of a web page produced byone embodiment of the present invention;

FIG. 57 is a 2× blowup of the screen shot shown in FIG. 56;

FIG. 58 illustrates how a computer can access font bitmaps or fontoutlines from a font server;

FIG. 59 illustrates how a computer can access font bitmaps or fontoutlines that it has stored within it;

FIG. 60 is a highly simplified pseudocode representation of an algorithmfor calculating a subpixel-optimized bitmap of a character-font shapeusing non-linear color balancing of the type described above with regardto FIGS. 48 through 52;

FIGS. 61 through 63 illustrate the size of the source image window in acharacter-font shape image, such as that shown in FIG. 55, used,respectively, to determine a coverage value for each of the threesubpixel's of an individual pixel of a pixel array such as that shown inFIG. 55;

FIGS. 64 through 67 illustrates some prior art techniques that have beenused to calculate coverage values for non-square rasterization units(usually whole pixels in the prior art);

FIGS. 68 through 87 illustrate a computationally efficient method ofcalculating the coverage value of rasterization units, using weightedline coverage values, which method is used in some embodiments of thepresent invention to calculate a coverage value for subpixels;

FIGS. 88 through 90 illustrate some of the other arrangements ofcoverage lines that can be used with a weighted line coverage algorithmof the general type described with regard FIGS. 68 through 87;

FIG. 91 illustrates a mapping of an array of pixels, and theirrespective subpixels, into an image of a portion of a hypothetical fontoutline;

FIG. 92 illustrates corresponding coverage values that have beencalculated for the subpixel's shown in FIG. 91;

FIG. 93 corresponds to FIG. 46, and like FIG. 46 illustrates how a priorart linear color balancing method distributes all of an individualsubpixel's coverage value over a series of adjacent subpixel's within agiven pixel row;

FIGS. 94 and 95 illustrates color balance filters that can be used withthe non-linear color balancing method described with regard FIG. 60;

FIG. 96 is a highly simplified pseudocode description of an algorithmthat can be used to map the whole-pixel composite alpha valuescalculated for font bitmaps by a method such as that shown in FIG. 60into a more limited color space of such whole-pixel composite alphavalues;

FIG. 97 is a highly simplified pseudocode description of an algorithmfor displaying text strings on a subpixel addressable display using fontbitmaps created by a combination of the methods illustrated in FIGS. 60and 96;

FIGS. 98 through 101 illustrate how well the present invention candisplay web pages on a 320×240 screen, with FIGS. 98 and 100 each beinga screen shot of a 640×480 layout of a different web page, and FIGS. 99and 101 showing how the present invention is capable of displaying eachof these two web pages, respectively, on a 320×240 screen;

FIG. 102 is a schematic block diagram of some of the data structures andprogramming used by a proxy server and thin client computer to enable auser of the thin client computer to access web content on a scaled-down,subpixel-optimized screen;

FIG. 103 is a portion of the HTML code of the web page illustrated inFIGS. 98 and 99;

FIG. 104 illustrates the layout of a web page produced by the proxyserver and the portion of that layout that falls within the proxyserver's virtual screen, which in this example corresponds to theportion of the web page shown in FIG. 99;

FIGS. 105A and 105B are highly simplified pseudocode descriptions ofprogramming on the proxy server shown in FIG. 102;

FIGS. 106A through 106C are highly simplified pseudocode descriptions ofproxy server programming for capturing, scaling-down, andsubpixel-optimizing a representation of a portion of a web page anddownloading it to a thin client computer;

FIG. 107 is a highly simplified pseudocode description of programmingfor the actual downloading of the web page representation captured bythe programming of FIGS. 106A through 106C;

FIG. 108 is a highly simplified representation of the data downloaded toa thin client computer by the programming illustrated in FIG. 107;

FIGS. 109A through 109C are highly simplified pseudocode representationsof programming on the thin client shown in FIG. 102;

FIGS. 110 through 112 illustrate how, if a user clicks on a text entryfield on a web page's display on the thin client shown in FIG. 102, apop-up keyboard is shown that allows the user to enter text into thatfield;

FIG. 113 illustrates how the user can use the same popup keyboard toenter URLs that allow him or her to access desired websites;

FIG. 114 is virtually identical to FIG. 13 except that it illustrates anembodiment of the invention having a toolbar at the top of the thinclient computer screen that includes graphical user interface buttonsand a URL text entry field;

FIGS. 115 and 116 are highly simplified pseudocode representations ofprogramming on a proxy browser and thin client computer, respectively,that is used in an alternate embodiment of the invention in which thethin client computer stores the layout of an entire web page to allow itto more quickly scroll and zoom relative to that web page;

FIG. 117 is a schematic illustration used to help explain the operationof the pseudocode illustrated in FIGS. 115 and 116;

FIGS. 118 through 120 illustrate how the present invention can allow auser to rapidly select a portion of a web page or a screen and then zoomto that selected portion;

FIGS. 121 through 128 illustrate a zoom-click aspect of the inventionthat allows a user to view and select portions of a web page or a screenwith greater accuracy;

FIG. 129 is a highly simplified pseudocode description of programmingfor allowing a user to have selected text reflowed across a given screenwidth at a larger scale;

FIGS. 130 through 137 are used to illustrate how the text re-flowcapability shown in FIG. 129 can operate;

FIG. 138 is used to illustrates how multiple client computers can beprogrammed to access a common font server and/or a common proxy server;

FIG. 139 is a highly simplified pseudocode description of programmingthat can be used on one or more font servers;

FIG. 140 illustrates how certain aspects of the present invention can beused to allow a client computer to view screens that are drawn byapplications (which can include, but are not limited to, one or more webbrowsers) running on a remote computer in a scaled-down,subpixel-optimized manner by intercepting calls made by suchapplications to the remote computer's operating system;

FIG. 141 illustrates how subpixel-optimized, scaled-down views can behad of screen output generated by application programs (which caninclude but are not limited to one or more web browsers) running on agiven computer, even if those applications have not been programmed togenerate such views, on the screen of that given computer, byintercepting calls to the computer's operating system made by suchapplications;

FIG. 142 illustrates how certain aspects of the present invention can beused allow portable small-screen, thin-client computers to access webcontent and the screen output of various application programs throughboth local and/or Internet wireless communication;

FIGS. 143 and 144 are used to illustrate how in some embodiments of thepresent invention subpixel-optimized output is displayed with alandscape orientation by rotating a computing device that has anoperating system programmed to work in a portrait orientation;

FIG. 145 is a highly simplified pseudocode description of programminguse to draw a simple shape with a subpixel-optimized resolution;

FIG. 146 is a highly simplified pseudocode description of how webapplets can be used to draw subpixel-optimized elements on the screen ofa computer;

FIG. 147 is a highly simplified block diagram illustrating how rolloverimages can be subpixel-optimized;

FIG. 148 is a highly simplified block diagram illustrating how GIFFanimations can be subpixel-optimized;

FIG. 149 is a highly simplified pseudocode description of how 3-Danimation can be subpixel-optimized;

FIGS. 150 and 151 are highly simplified pseudocode descriptions of how aclient/server gaming system can be used to provide subpixel-optimizedgame images on a client computer;

FIG. 152 is a highly simplified pseudocode description of howsubpixel-optimized displays can be made of images having transparencymaps;

FIG. 153 is a highly simplified pseudocode description of how videousing interpolation between keyframes can be subpixel-optimized;

FIG. 154 is a highly simplified pseudocode description of how videowhose representation includes the drawing of screen changes to less thana whole frames can be subpixel-optimized;

FIGS. 155 and 156 are highly simplified pseudocode description ofdifferent methods of displaying images that move relative to a displaywindow;

FIGS. 157 through 159 are highly simplified pseudocode description ofhow subpixel optimization can be applied to video that is beenrepresented by various compression techniques;

FIG. 160 is a highly simplified pseudocode representation of programmingfor enabling a server computer to download subpixel-optimized,scaled-down video to a client computer;

FIG. 161 is a highly simplified pseudocode description of programming onboth a client and proxy computer to enable the client computer to accessscaled-down, subpixel-optimized video from other servers through a proxycomputer;

FIG. 162 is a highly simplified pseudocode representation of programmingthat allows electronic ink to be viewed more clearly;

FIGS. 163 through 166 are used to help illustrate the benefits of theprogramming describe with regard FIG. 162;

FIG. 167 illustrates that the present invention relates not only tomethods, but also to programming and data related to such methods storedin a machine readable form or embodied in a propagated signal, and toprogrammed and/or hardwired computer systems for performing such methodsand/or use such programming and/or data.

FIGS. 168 through 184 are used to describe additional improvements tothe invention for improving the clarity of color-balancedsubpixel-optimized font bitmaps produced by the present invention.

FIG. 185 is a higher level description of the selected-text reflowmethod described with regard to FIGS. 129 through 134;

FIG. 186 is a high-level pseudocode description of a zoom-to-fitmethod;, of the general type described with regard to FIGS. 118 through120;

FIG. 187 is a high-level pseudocode description of a drag scroll method,that allows a user to easily navigate within the display of a web page'slayout;

FIG. 188 is a high-level pseudocode description of a click-zoom methodthat enables the user to rapidly selected to zoom in on a desiredportion of the display of a layout of a web page;

FIG. 189 is a highly simplified pseudocode description of the zoomclickmethod described with regard to FIGS. 121 through 128;

FIG. 190 is a highly simplified pseudocode description of a method thatallows a user to see a zoom-out view of a web page using greeking;

DETAILED DESCRIPTION OF SOME PREFERRED EMBODIMENTS

FIG. 1 is a high level diagram that represents basic processes and datarepresentations that may be used according to some aspects of thepresent invention to improve Web browsing and/or display of other typesof computer generated content, particularly on systems with lowresolution displays.

Digital content 100, including one or more bitmap images 102 and text104 shown at the top of FIG. 1 is displayed in a subpixel-optimizeddownscaled format 106 shown at the bottom of that figure. In oneembodiment of the invention a difference process, comprised of step 108is used to subpixel-optimize the display of the bitmap images 102, thanis used to subpixel optimize the display of the text content. Step 108uses a subpixel optimization routine that is particularly suited forproducing subpixel-optimized images from color bitmaps. The process 108also scales down the bitmaps for display on screens having a lowerresolution than that at which most Web content is currently displayed.

The text 104 contained in the digital content 100 is processed fordisplay on a small-resolution subpixel-addressable screen by using steps110 and 112. Step 110 replaces the fonts normally used to display textwith fonts that are optimized for display at small resolutions onsubpixel-optimized screens. Then step 112 uses font bitmaps from thesubstituted fonts that have been produced by a subpixel optimizationroutine particularly suited for the representation of high resolutionimages of shapes of a uniform color, such as the mathematically definedoutlines commonly used to define font shapes.

One use of the present invention is in the context of a portable, lowresolution Web browser that displays images and/or text, represented bya markup language, that have been downloaded from the Internet.

To date there have been multiple so-called mark-up languages. One of theearliest and most successful was SGML (Standard General MarkupLanguage). SGML is a text-based language that can be used to ‘markup’data with descriptive ‘metadata’ that provides information about thedata. As an example, markup metadata can be used to indicate the purposefor which the data is intended or the location within a document'svisual presentation at which the data should be positioned. It can alsobe used to indicate links to data of other types, such as images, whichare to be inserted at a given location in a text, or in a documentdescribed by the mark-up language. Several markup languages that arecommonly used today, such as HTML and XML, are derived from SGML.

In a preferred embodiment of the present invention, the digital content100 referred to in FIG. 1 above may be standard Web content thatincludes text and/or images represented by a markup language such asHTML. This standard Web content 100, representing perhaps a Web sitehome page, can be downloaded through various apparatus and methodsdescribed below for display on a portable low resolution browser device200, shown in FIGS. 2 through 4. Before display on the browser device200, the digital content 100 may be scaled and/or subpixel-optimized forenhanced readability through various methods and processes, such asthose described below.

FIG. 2 illustrates a networked computer environment implemented inaccordance with one embodiment of the present invention. The thin clientbrowser 200 program runs in a handheld or other small computing devicecapable of retrieving and displaying text and/or graphics on a smalldisplay screen, such as, for example, a liquid crystal display (LCD)screen. The browser allows a user to request digital information from aremote source, e.g., from the Internet, and to display it on a screen.

In the embodiment of the present invention illustrated in FIG. 2, a userwould request the retrieval and display of digital content, containingimages and/or text, by way of manipulation of the controls of the thinclient browser 200. The requested digital content may be a specific Webpage accessible over the Internet. The thin client browser 200 thenmakes its request 202 for content through a physically remote proxyserver 210 over a network 138, which can be, for example, a LAN, a WAN,or the Internet.

The proxy server 210 runs a proxy process 216 that responds to therequest for digital content by generating a corresponding request 214 toa physically remote Web server 220 that contains the digital content 100requested by the user. Server 220 responds to the proxy server request214 by a download 222 of the digital content 100 over the network 138 tothe proxy server 210.

The proxy process 216 within the proxy server 210 then uses itscomputational resources to scale and subpixel optimize the digitalcontent 100, including performing the functions 108 and 110 illustratedin FIG. 1. Scaling and subpixel optimizing are aspects of the presentinvention that result in the enhanced readability of images, such astext and/or graphics, on small display devices. They will be discussedin greater detail in a subsequent section.

The proxy server 210 completes a download 212 of the now scaled andsubpixel-optimized content to the browser 200. At this point, the useris able to view the content on the screen of the browser 200.

In the embodiment of the invention shown in FIG. 2, the text portion ofthe digital content is downloaded to the browser in the form of one ormore strings of characters and associated designations of the fontfamily, font size, and other font attribute. The thin client browserperforms the function 112 shown in FIG. 1 by displaying the strings withimages composed from individual subpixel-optimized font bitmaps. If thethin client does not have bitmaps for any character in such a string inthe font size and family specified for it, it requests one or more suchbitmaps from a font server 230. In various embodiments of the inventionsshown in FIGS. 2 through 8, the proxy server could provide such fontbitmaps or the thin client could have them as a standard part of itssoftware (although that would increase the size of the browsersoftware). In still other embodiments, the fonts could be outline fonts.One advantage of font bitmaps is that some font vendors are more willingto allow bitmaps of their fonts to be distributed more freely thanoutlines of such fonts.

An alternate embodiment of the present invention is illustrated in FIG.3. In this embodiment the proxy server 210 and the Web server 220 ofFIG. 2 are replaced with a single remote server 220A. The thin clientbrowser 200 makes its request 202A for digital content 100 to the remoteserver 220A over a network 138. For example, network 138 may be theInternet or a LAN and the digital content 100 may be a specific Webpage. The remote server 220A contains the requested digital content 100and runs a proxy process 216A that responds to the request 202A. Thisproxy process 216A can be any process running on the server thatdynamically scales and/or subpixel optimizes web content for display onthe thin client browsers. The proxy process 216A operates upon thestored digital content 100 and dynamically converts it to the form 106shown in FIG. 1 by performing the steps 108 and 110 of FIG. 1. Theremote server 220A completes a download 212 of the scaled and/orsubpixel-optimized content to the thin client browser 200.

Another alternate embodiment of the invention is illustrated in FIG. 4.As in FIG. 3 the thin client's request is made directly to a remoteserver, in this case server 220B, over a network 138. In thisimplementation the remote server 220B contains the requested digitalcontent in both a standard form 100, that is for use by standardbrowsers computers, and the scaled and/or subpixel-optimized content100A. The conversion from standard digital content 100 to the scaledand/or subpixel-optimized form has occurred in advance, therebyeliminating the need for a proxy process to dynamically convert it. Thethin client provides information to the server indicating that it shouldreceive the scaled and/or subpixel-optimized version of the requestedcontent. The remote server 220B completes a download 212 of the scaledand/or subpixel-optimized content 100 to the thin client browser 200.

A further alternate embodiment is illustrated in FIG. 5. Browser 200A isa full scale browser that also contains a scaling and/or subpixeloptimization process 510. The browser 200A makes a request 202B to aremote server 220C over the network 138 for the digital content 100.Server 220C completes a download 212A of the requested digital content100 to the browser 200A. The conversion of the digital content 100 to ascaled and/or subpixel-optimized form is handled by the process 510running in the browser 200A.

FIG. 6 illustrates a single computer system 600 capable of scalingand/or subpixel optimizing digital content 100. In this preferredembodiment the digital content has been created on or loaded intocomputer system 600 in advance. Computer system 600 contains a browserprocess 620 that includes a scaling and/or subpixel optimizingsub-process 640. Here the user makes a request to the computer system600 by way of an attached input device, e.g., a keyboard or mouse, forthe display of the digital content 100. The browser process 620retrieves the requested digital content 100 from one of the computersystem's storage elements, e.g., such as electronic memory or diskstorage. Once retrieved, the browser process 620 then passes the digitalcontent to the scaling and/or subpixel optimizing sub-process 640. Oncethe conversion is complete, the converted content is displayed on thedisplay screen of the computer system 600. This embodiment of thepresent invention operates without the need for a network or remoteservers.

FIG. 7 illustrates an alternate single computer system implementation.In this embodiment, computer system 700 contains the digital content 100(e.g., the contents of a specific Web page) that has been created orloaded in advance, a proxy process 740, and a browser process 720. Theproxy process 740 executes scaling and/or subpixel optimizationprogramming 760. The browser process passes a user request for displayof the digital content 100 to the proxy process 740. Proxy process 740then retrieves the digital content 100 from the storage element ofcomputer system 700. Once retrieved, the programming 760 converts thedigital content 100 to a scaled and/or subpixel-optimized form that isthen passed to the browser process 740 for display by the display deviceof computer system 700.

FIG. 8 illustrates a second alternate single computer systemimplementation. Here computer system 800 contains scaled and/orsubpixel-optimized Web content 810. A browser process 820 handles userrequests for display of the content 100A, retrieves it from a storageelement of computer system 800, and displays it on the screen ofcomputer system 800.

In some embodiments of the present invention presented above, thescaling of the image from the resolution of the source image to theresolution of the subpixel addressed screen is performed at a fixedresolution. In other embodiments, the determination of the scalingfactor between the source image resolution and the resolution to bedisplayed on the subpixel addressable display screen can be specified bythe user of the browser device. In these embodiments the user of thebrowser selects from a plurality of scale factors by communicating thescale factor to the process that scales down an image read from storage.The process that scales down the image read from storage then scalesdown and subpixel optimizes the image by a horizontal and vertical scalefactor that varies as a function of the selected scale factor.

As with most other user inputs to the browser device, such scaleselections can be made by use of physical or GUI buttons, menu items,dialog boxes, or any other known user interface device on the browserdevice.

In some such embodiments, the user of the browser device may choose asecond scaling factor from a plurality of scaling factors, according towhich the digital content will be re-scaled and re-subpixel optimizedand redisplayed, after the image has been previously retrieved fromstorage and displayed in subpixel-optimized form at a first scalingfactor.

In such embodiments, the scaling factor used in the first scaled andsubpixel-optimized display may have been as a result of a default orpreferred scaling factor or it may have been as a result of a scalingfactor previously chosen by the user of the browser device. The user ofthe browser device may choose from a plurality of scaling factors forthe redisplay of the digital content by the method of manipulating aninput apparatus of the browser device. Such manipulation of the inputapparatus of the browser device will cause the image to be scaledaccording to the second chosen scaling factor.

Such a second scaling may occur as a result of a process running eitherwithin the browser device or within a physically remote server, asindicated above by FIGS. 2 through 8. The user of the browser device maycontinue to select from a plurality of scaling factors for subsequentredisplays.

It is easiest to downscale digital images by integer multiples, whichcause an integer number of pixels in a source image to fit into a givenpixel in the resulting downscaled image. For example, the scaling from a640 by 480 resolution to a 320 by 240 resolution is a downscaling by afactor of two. Some embodiments of the present invention allow the userto select from a plurality of downscale factors, including non-integerdownscaling factors. An example of a non-integer downscaling factor isthat of a 3/2 downscaling factor that would cause a 480 by 360 pixelportion of a 640 by 480 resolution source image to be scaled and/orsubpixel optimized for display on a 320 by 240 resolution displayscreen.

Computer graphic displays such as cathode ray tubes (CRT) or liquidcrystal display (LCD) screens almost exclusively use the RGB model ofcolor space, although the invention can be used with other color models,such as the CMYK color model. In the RGB model, the three primaryadditive colors, red, green, and blue, are blended to form a desiredcolor as perceived by the human eye.

Most portable computing or imaging devices have LCD screens that use theRGB model. Such LCD screens are comprised of a rectangular array ofthousands of grid elements, referred to as pixels, each capable ofdisplaying any one from a large number of color values from an RGB colorspace, that when perceived as a whole, form an image. LCD screens arecharacterized by the number of horizontal and vertical pixels theycontain.

Each pixel in turn is composed of three individually addressablesub-components, referred to here as subpixels. Most commonly, the threesubpixels are rectangular red, green, and blue elements. In the mostcommon implementation, the three red, green, and blue subpixels are eachassigned a luminous intensity value such that they blend together togive the entire pixel the appearance of the desired color. All of thepixels on an LCD screen blend together, in turn, to give the appearanceof the desired image.

The subpixels are considered individually addressable because the colorvalue assigned to an individual pixel has a separate red, green, andblue color component, or luminosity value, which will be displayed,respectively, by the red, green, and blue subpixels of that pixel. Thus,the luminosity of each subpixel can be separately controlled bycontrolling the value of its associated color component's luminosityvalue in the color value assigned to the pixel.

In an LCD device and other “subpixel addressed” displays, such as colorLED (including screens using organic light-emitting diodes (OLEDs)) orgas plasma displays, each individual subpixel has a fixed, knownposition on the display. Many display devices, such as almost allcathode ray tube (CRT) displays are not subpixel addressable. Forexample, although each pixel of a CRT has an individual luminosity valuefor each of its red, green, and blue component colors, the exactphysical location within each such pixel of the elements that generatethe light associated with those different color values is normally notknown because it varies as a function of the individual phosphor patternof the screen, the resolution of the horizontal and vertical scan, andthe current exact state of the voltages that control the exact locationsat which individual pixels are drawn on the screen.

FIG. 9 illustrates a 12×12 portion of an LCD screen 900 that iscomprised of a plurality of pixel rows (R1–R12) and pixel columns(C1–C12). Each intersection of a row and a column constitutes a pixelelement. Actual implementations of LCD screens can have an arbitrarynumber of rows and columns, though grids of 320 by 240, 640 by 480, 800by 600, 1024 by 768, and 1280 by 1024 are frequently seen.

Pixel R1-C1 is contained within circle 910. Pixel R1-C1 is itself madeup of three pixel sub-components herein referred to as subpixelelements. An expanded view of pixel C1-R1 is shown as expanded pixel 920at the bottom of FIG. 9. Subpixel element 902 displays as red, subpixelelement 904 displays as green, and subpixel element 906 displays asblue. The individual subpixel elements 902, 904, and 906 areapproximately ⅓ of the width of a full pixel and are equal in height toa full pixel.

As illustrated in LCD screen 900, when a plurality of such pixels arearrayed in a grid this causes the appearance of vertical color stripesdown the LCD screen 900. This known arrangement of pixels is sometimesreferred to as vertical RGB striping. Other known arrangements lay thepixel elements out in the orthogonal direction such that horizontalstriping results (in which case rotating the screen by 90 degrees willconvert is into a vertically striped screen).

In common usage, the luminous intensity of the three subpixel elementsof a pixel are set such that the pixel is perceived by the human eye asbeing of the desired hue, saturation, and intensity. The RGB subpixelelements are used together to form a single colored pixel to represent asingle sample of an image to be displayed.

One aspect of the present invention relates to the improvement of thereadability of downloaded Web content, and other digital contentincluding text and images, on low-resolution screens, such as, forexample, displays having column by row pixel ratios of 320 by 240 or 240by 320 (in which case they can be rotated 90 degrees to have aresolution of 320 by 240). Many of the embodiments of the presentinvention discussed and shown in some detail map image and text from avirtual layout resolution of 640 by 480 pixels onto a screen with a 320by 240 pixel resolution. But the present invention can be used withother resolution screens. To give just a few examples, it could be usedto display content laid out roughly as it would look at a 1024×768resolution on a 512×384 resolution screen, or display content laid outroughly as it would look at a 800×600 pixels on a 400×300 screen. Inother embodiments, the invention can be used with relativelylow-resolution displays that have pixel dimensions that are other thaneven fractions of the horizontal and/or vertical pixel dimensions commonon personal computer screens.

In general when we refer to a small resolution screen we mean a screenhaving a smaller resolution that given digital content or a given layoutof digital content would normally be intended to be displayed upon. Bysuch smaller screens we also mean to include portions of larger screens,such as windows on larger screens, that have such lower resolution.

In FIG. 10, image content 105 and text content 107 represent a portionof the subpixel-optimized display 106 of FIG. 1. The image shown in FIG.1 is a grayscale blowup of the actual color values associated with thesubpixel-optimized display of both text and images. The portion of theimage content 105 contained within the rectangle 1000 is shown expandedat 1020 to make its individual pixels easier to see. Correspondingly, aportion of the text content 107 contained within rectangle 1040 is shownexpanded at 1060.

It is important to note that the pixels shown at 1020 and 1060 representwhole pixels because the software used to generate the images 1020 and1060 merely represents the grayscale corresponding to the RGB colorvalues associated with individual whole pixels. The subpixel blowups1020A and 1060A are attempts to represent the intensity of each of thethree subpixels associated with each pixel in the blowups 1020 and 1040,respectively. 1020B is a blowup corresponding in scale and location toblowups 1020A and 1020. In it the pixel grid of the image is displayedin relatively bold lines, and the three subpixel divisions within eachsuch pixel are shown in somewhat finer lines. This composite grid issuperimposed on top of the original higher resolution color bitmap image102 of FIG. 1 from which the pixelation patterns shown in the blowups1020 and 1020A have been derived. In the particular images shown, theresolution of the color bitmap 102 is twice as high in both the verticaland horizontal direction as the whole pixel resolution in the image 105shown at the bottom of FIG. 10.

The blowup 1060B illustrates the spatial relationship between thesubpixel pattern used in the subpixel-optimized font image shown at1060A and the high-resolution font outline of the characters representedby that font image.

As can be seen by comparing the subpixel resolution blowups 1020A and1060A to the corresponding whole pixel blowups 1020 and 1060,respectively, the display of subpixel-optimized representations ofimages and text at subpixel resolution provides better resolution.

FIG. 11 provides a representation of readability provided by anembodiment of the invention when displaying standard Web content on a320 by 240 color display. Bitmap 1100 at the top of the figure is agrayscale, whole-pixel blowup of an actual bitmap produced from astandard 640 by 480 layout of a portion of a priceline.com web page.This high resolution image corresponds to the portion of the web pagecontained within the rectangle 1130 shown in the whole-screen lowerresolution 320 by 240 image of the web page shown at the bottom of FIG.11. Bitmap 1120 in the middle of the figure is a grayscale, whole-pixelblowup of the color bitmap of the same portion of the whole-screen 320by 240 image. 200B at the bottom of FIG. 11 represents a hand-heldcomputing device that is functioning as a thin client browser of thetype described with regard to FIG. 2. On the screen of this browser isshown the above mentioned whole-screen image. This 320 by 240subpixel-optimized bitmap represents a 640 by 480 layout of the web pageit shows. Like the blowup 1020 of FIG. 10, the bitmap 1130 shown at thebottom of FIG. 11 illustrates individual pixels with grayscale levelscorresponding to the average luminosity of whole pixels. When this imageis seen on a 320×240 screen having vertical subpixel striping, as shownin FIG. 9, the actual image appears to have an even higher resolution,as indicated by the blowup 1020A in FIG. 10.

Any known algorithm for deriving subpixel-optimized images of colorbitmaps can be used for the purposes of many aspects of the presentinvention. In one embodiment of the present invention, the luminosityassigned to each given subpixel of a given color is determined by theaverage intensity of that given color's value in each total or partialpixel of the source image inside a rectangular window in the sourceimage. This source image window has a size and location relative to thesource image corresponding to the area of a whole pixel in thescaled-down image centered around the given subpixel. The averageintensity assigned to the subpixel is calculated by multiplying theintensity of each source image pixel that totally or partially coversthe source image window by the percent of that window's area covered byeach such source image pixel.

FIG. 12 illustrates the mapping of a reduced resolution display'ssubpixel grid onto a portion of a higher-resolution source image 102.This figure illustrates the subpixel grid 1210 being superimposed on aportion of the original higher resolution color bitmap 102 shown inFIG. 1. Circle 1220 encloses an area of that grid that corresponds toone pixel in the intended lower resolution display device. The positionand scale of the grid patterns is determined by the relationship betweenthe higher-resolution source bitmap image and the pixel grid of theresulting subpixel-optimized images. The particular grid pattern 1210shown in FIG. 12 represents a scaling from the pixel resolution of thecolor bitmap image 102 to a display screen resolution that has one-halfas many pixels in both the horizontal and vertical direction as thesource image. An example of this scaling is that of an image havingpixelation appropriate for display on a 640 by 480 display being scaleddown for proportional display on a 320 by 240 display screen. Thus, eachbold line division of grid pattern 1210 covers four pixels of colorbitmap image 102. The dashed circle 1220 encloses one such bold linedivision that contains four higher resolution source pixels.

FIG. 13 is an expansion of the nine bold line divisions (i.e., ninewhole pixels) centered on circle 1220 of FIG. 12. The pixel insidecircle 1300 represents a single pixel of the intended display device. AsFIG. 13 makes clear, each bold line division of grid pattern 1210encloses four pixels of the higher resolution source image. The detailof FIG. 13 also illustrates that each pixel of the intended displaydevice is made up of three color subpixels, including a red, a green,and a blue subpixel, labeled “R”, “G”, and “B”, respectively.

FIGS. 14, 15, and 16, respectively, illustrate the positioning of therectangular window area in the source image from which the luminosity ofred, green, and blue colored subpixels in the intended display device isdetermined. The area of each such source image window equals the area ofa whole pixel in the scaled down image centered around the portion ofthe source image corresponding to the subpixel whose luminosity it isbeing used to calculate.

Rectangle 1400 of FIG. 14 encloses the area of the source image windowused to calculate the luminosity of the red subpixel of the lowerresolution display device. Similarly, FIGS. 15 and 16 enclose the sourceimage windows that correspond to the green and blue subpixels of theintended display device, respectively.

As stated above, the luminosity assigned to a subpixel of a given coloris determined by the following function, or an approximation thereof.The luminoisity is set equal to the intensity of the supixel's color ineach pixel of the source image totally or partially within thesubpixel's corresponding source image window, times the percent of thatwindow's area covered by each such source image pixel.

FIGS. 17, 18, and 19 are blow-ups of the central portion of FIGS. 14,15, and 16, respectively, illustrating in greater detail how theluminosity of the red, green, and blue, subpixels is a function of therespective color luminosities of whole or partial source image pixelscontained within a source image window centered around the portion ofthe source image corresponding to a subpixel of a given color This isshown in FIG. 17 for the red (R) subpixel, in which window area 1700 iscentered on the portion of the source image corresponding to thatsubpixel. Window area 1800 of FIG. 18 illustrates the same for the green(G) subpixel, and window area 1900 of FIG. 19 illustrates the same forthe blue (B) subpixel.

As a result of the shift between the source image windows for eachsubpixel, the color value derived for each subpixel represents thesubpixel's corresponding color in a portion of the source imagecorresponding to the location of each subpixel, itself, rathercorresponding to the location of its pixel as a whole. As a result, thisuse of different source image windows for different subpixels of a givenpixel increases the spatial resolution of the resulting image.

In the embodiment of the invention shown in FIGS. 17, 18, and 19, thedetermination of which pixels fall within a subpixel's source imagewindow and the percent of that window each such pixel covers is made byan approximation based on the percentages of horizontal and verticalscan lines that are covered by such source image pixels. In FIG. 17, thecolor value of the red subpixel is determined as a result of thepercentage of a horizontal coverage line 1720 and a vertical coverageline 1740 this is covered by individual source image pixels, times thered color value of each such pixel. The same is true, for respectivecolor values, for the scaled image's green (G) subpixel of FIG. 18 andits horizontal and vertical coverage lines 1820 and 1840 respectively,and the scaled image's blue (B) subpixel of FIG. 19 and its horizontaland vertical coverage lines 1920 and 1940, respectively.

It should be noted that horizontal coverage lines 1720, 1820, and 1920are intended to represent vertical positions just above or below thevertical midpoint of their corresponding rectangular area. This is sothe coverage line will not exactly equal that location in the sourceimage that represents the border between vertical pixels. In the samemanner, the vertical coverage line 1740 is intended to represent itshorizontal position just to the left or the right of the horizontalmidpoint of the rectangular area 1700.

The above defined coverage lines represent an embodiment of an aspect ofthe invention that relates to the use of a continuous function, which isintended to include a reasonably high resolution (such as 5 or more bitresolution) equivalent thereof, to determine the extent to which thearea of an original image associated with a given color subpixel iscovered by a given color or shape. In continuous coverage functions,this coverage is determined, not by sampling, but rather by amathematical function that determines boundary locations at which thegiven coverage starts and stops in one or more dimensions, andcalculates coverage as a function of lengths or areas between one ormore such boundaries or between such boundaries and the boundary of thesource image window associated with a given subpixel.

In the embodiment of the invention shown in FIGS. 17, 18, and 19 and inFIGS. 30, 31, and 32 the calculation of this continuous coveragefunction is sped up by estimating the area of each source image pixelthat is in a given subpixel's corresponding source image window area bydetermining the portion of one or more scan lines within the rectangulararea that is covered by each of one or more of the source image's pixelswithin the window. The percent of the total length of the window'sscanning lines that is covered by a given pixel is multiplied by thevalue of the subpixel's color in that pixel. Such products are summedover all pixels that cover any of the window's scan lines to produce thesubpixel's color value. This is how a “line coverage” type of continuouscoverage function can be used to determine the luminosity of a subpixelwhen creating scaled images of color bitmaps.

FIGS. 20, 21, and 22 illustrate the use of a single horizontal and asingle vertical coverage line within the source image window 2000associated with the red (R) subpixel in the lower resolution displayscreen. In FIG. 21, the coverage value associated with horizontal scanline 2020 is the summation of:

the red value of the pixel covered by bracket 2120, times the portion(⅓) of horizontal scan line 2020 covered by bracket 2120, plus

the red value of the pixel covered by bracket 2140, times the portion(½) of horizontal scan line 2020 covered by bracket 2140, plus

the red value of the pixel covered by bracket 2160, times the portion(⅙) of horizontal scan line 2020 covered by bracket 2160.

In similar fashion the coverage value associated with vertical scan line2040 shown in FIG. 22 is the summation of:

the red value of the pixel covered by bracket 2220, times the portion(½) of vertical scan line 2040 covered by bracket 2220, plus

the red value of the pixel covered by bracket 2240, times the portion(½) of vertical scan line 2040 covered by bracket 2240.

The total coverage value for the red subpixel is one half of thecoverage value calculated for the horizontal scan line plus one half ofthe coverage value calculated for the vertical scan line.

Similarly, FIGS. 23, 24, and 25 illustrate the use of single horizontaland single vertical coverage lines within the source image window 2300associated with the green (G) subpixel in the lower resolution displayscreen, and FIGS. 26, 27, and 28 illustrate the use of single horizontaland single vertical coverage lines within the source image window 2600associated with the blue (B) subpixel in the lower resolution displayscreen.

FIG. 29 is highly simplified pseudocode representation of an algorithm2900 for deriving scaled subpixel-optimized images from a source bitmapimage using line coverage of the type described above with regard toFIGS. 17 through 28.

This algorithm performs a loop 2901 for each pixel row of the outputimage (i.e, the scaled, subpixel-optimized image).

This loop performs an inner loop 2902 for each pixel in its current row.For each such pixel the loop 2902 performs a loop 2904 and a function2914.

The loop 2904 is comprised of an interior loop 2906 that is performedfor each of the subpixel's scan lines, such as the scan lines shown inFIGS. 17 through 28.

The loop 2906 includes a function 2908 and a loop 2910. The function2908 calculate each intersection between that scan line and a pixelboundary. Normally, such intersection calculations and the othercalculations in this algorithm are performed with limited accuracy, suchas for example 6 to 8 bits of accuracy, to reduce the storage andcomputational requirements of such computation.

Then a loop 2910 performs a function 2912 for each portion of a scanline that occurs between two scan line ends, a scan line end and a pixelboundary, or two pixel boundaries. Function 2912 adds to a coveragevalue associated with the current subpixel of the loop 2904 a multipleof the percent of that scan line covered by current portion of loop 2910times the component color value of the pixel covering that portioncorresponding to the color of the current subpixel, all divided by thenumber of the subpixel's scan lines.

Once the loop 2904 has calculated the subpixel luminosity value for eachsubpixel of the current pixel, function 2914 sets the current pixel'scolor value equal to a color having a compound RGB value with red,green, and blue values equal to the subpixel luminosity valuescalculated, respectively, for the red, green, and blue subpixels of thecurrent pixel.

In different embodiments of the invention different length color valuescan be used, such as 24 bit, 16 bit, or 12 bit color values. Althoughthe system can be used with a limited color palette, it works best withtrue-color colors, which have at least 4 bits of variability for each ofthe red, green, and blue subpixels. 16 bit color, which commonlyallocates 5 bits for red and blue and 6 bits for green (because of theeyes' greater sensitivity to green), provides even better visualresults.

Although the embodiment of the invention described above with regard toFIGS. 17 through 28 makes use of a single horizontal and a singlevertical coverage scan line, other embodiments of this aspect of theinvention may have more scan lines and/or have scan lines inorientations other than horizontal and vertical.

FIG. 30 illustrates the use of two horizontal coverage lines and twovertical coverage lines within a source image window 3020 that can beused to estimate the color coverage associated with a red (R) subpixelof a subpixel-optimized image.

FIG. 31 illustrates the use of two diagonal coverage lines within asource image window 3120 associated with a green (G) subpixel of asubpixel-optimized image.

FIG. 32 illustrates the use of two diagonal coverage lines, a horizontalcoverage line, and a vertical coverage line within a source image window3220 associated with a blue (B) subpixel of a subpixel-optimized image.

Of course each of the arrangements of coverage lines shown in each ofFIGS. 30 through 31 can be used on either red, green, or blue pixels.

FIGS. 33 through 38 illustrate that the line coverage method ofcalculating subpixel luminosity values can be applied to a broad rangeof different scalings between the size of a source image and theresulting subpixel-optimized image. This is true because the linecoverage method measures line coverage at a fairly high resolution,compared, for example, to many sampling techniques. This means that itdoes a relatively good job of measuring the coverage of pixels that areonly partially in a subpixel's source image window, as will often resultwhen using scaling factors that are non-integer ratios.

In one embodiment of this aspect of the invention a seven bit resolutionis used in calculating line coverage, which produces satisfactoryresults. Higher or lower resolutions can be used, but it is preferredthat the line coverage resolutions be higher than the two to four bitper dimension resolution commonly used in techniques that measurecoverage by sampling coverage within a subpixei's source image window atan array of sixteen (4×4) to two fifty-six (16×16) points.

FIG. 33 illustrates the coverage of two horizontal coverage lines byvarious source image pixels within a source image window associated withthe blue (B) subpixel for a mapping from a source image resolution to adestination pixel-optimized image having half as many horizontal pixelsand vertical pixels. FIG. 34 does the same for the two vertical coveragelines used with such subpixel luminosity calculation scheme. Thus, FIGS.33 and 34 illustrate an integral ratio between the number of pixels inthe source and the reduced images.

FIGS. 35 and 36 illustrate the coverage of horizontal and vertical scanline, respectively, by pixels of the same source image for a scalingfactor in which the reduced subpixel-optimized image has only about 40%as many horizontal and vertical pixels as the source image.

FIGS. 37 and 38 illustrate the same for a scaling factor in which thesubpixel-optimized image has about 66.66% as many horizontal andvertical pixels as the source image.

It can be seen that the scan line coverage technique shown in FIGS. 33through 38 provide an accurate estimate of the percent of each sourceimage window covered by each source image at each of different scaling,with relatively little computation.

FIGS. 39 and 40 illustrate the geometries associated with an “area” typeof continuous coverage function. In some embodiments of the invention,the percent of a given subpixel's source image window covered by each ofits associated source image pixels is calculated, not by the linecoverage approximation described above, but rather by an actualcalculation of the area of that part of each such source image pixelthat lies within the subpixel's source image window. For each suchsource pixel, the component color value of the pixel corresponding tothe color of the current subpixel is determined. The luminosity valuefor each subpixel is then calculated by summing the multiples of thepercentage of the source image window covered by a given source imagewindow times the value of the subpixel's color for each source imagepixel that appears in its source image window.

FIG. 39 illustrates the source image window area 3900 associated with ablue (B) subpixel. Source pixel 3920 is contained within source imagewindow 3900, as are portions of eight other source pixels. The percentof the source image window 3900 covered by a source pixel 3920 iscalculated by taking the ratio of the area of the hatched portion 4020of FIG. 40 over the area of the whole source image window 4000.Similarly, the percent of the source image window 4000 covered by theother source pixels contained within it a re calculated by taking theratios of their area within the source image window, as indicated bydifferently hatched areas of the window 4000, over the total area ofthat source image window.

FIG. 41 provides a highly simplified pseudocode representation of analgorithm 4100 that can be used to implement an area coverage functionof the type discussed above with regard to FIGS. 39 and 40.

The algorithm comprises a loop 4102 that is performed for each pixel rowin the sub pixel-optimized image to be produced. For each such row theloop 4102 performs an inner loop 4104 for each pixel in that row.

This inner loop 4104 is comprised of a loop 4106 and a function 4116.The loop 4106 is performed for each subpixel in the current pixel of theloop 4104. This inner loop 4106 is comprised of a function 4108 and aloop 4110. The function 4108 determines which pixels of the source imageare in the source image window associated with the subpixel, asdescribed above. Once this is done the loop 4110 is performed for eachsuch source image pixel.

The loop 4110 is comprised of a function 4112 and a function 4114. Thefunction 4112 calculates the percentage of the subpixel's source imagewindow area covered by the current source image pixel of the loop 4110.Then step 4114 adds to the luminosity value being calculated for thecurrent subpixel of the loop 4106, the multiple of the percentage of thesubpixel's source image window area covered by the current source imagepixel, times the source image pixel's color component valuecorresponding to the color of the current subpixel.

Once the loop 4106 has been performed for each subpixel in the currentpixel, function 4116 sets the current pixel's color value equal to acolor having RGB color component values corresponding to the red, green,and blue subpixel luminosity values calculated by the loop 4106.

FIGS. 42 through 53 relate to aspects of the invention concerningbicolor subpixel-optimized images.

A “bicolor” image is one in which individual pixel colors range betweentwo different color values. Commonly these two different color valueswill be black and white, and the pixels of the source and subpixel imagewill have values limited to black, white, or a grayscale value inbetween. In some embodiments, however, the two different color valuescan represent any uniform foreground and background colors, and colorsintermediary between them. Bicolor images are often used to representtext, because the display of text is often bicolored, involving aforeground color and a background color. But bicolored images can alsobe used to represent other bicolored shapes, bicolored bitmaps, portionsof multicolored bitmaps that are bicolored, or multicolored bitmaps thatare to be represented with bicolored output, such as a grayscalerepresentation of a colored image. For example, a multicolor sourceimage can be treated as a corresponding grayscale image, merely bytreating each of its pixels as having a grayscale value corresponding tothe average luminosity of each of its three color components.

The advantage of using such bicolored subpixel optimized output imagesis that they often can provide a higher spatial resolution thanmulticolor subpixel optimized output images. Such higher resolution isallowed where the bicolors are black and white, greyscale values, oropacity and transparency, because each subpixel can represent both theforeground and background of such bicolor pairs equally as well as anyother, since each color of each such bicolor pair has equal componentsof red, green, and blue. Except for the need to perform color balancing,as is described below, each subpixel's luminosity can be determined as afunction of the extend to which the portion of the source i magecorresponding to its own area in the output image is covered by aforeground or a background color. This use of a smaller source window,i.e, one corresponding to a subpixel's size rather than to a pixel'ssize, allows a more accurate spatial representation of the source image.

Where the foreground and background colors are not black and white, theresolution produced by bicolor subpixel-optimized images will be best ifthe foreground and background color each have red, green, and bluevalues that a re relatively equal in luminosity, but with the averageluminosity of the foreground and background color as different aspossible. In fact, in some embodiments of aspects of the inventionrelating to bicolored subpixel optimized images one or both of theoutput bicolors are changed from the corresponding input bicolors bybeing shifted toward a corresponding grayscale color to improve thespatial resolution of the output image.

The extent to which a subpixel of a bicolor subpixel-optimized outputimage is to display the foreground color is sometimes represented by analpha, or opacity, value. Such an alpha values indicates the extent towhich the subpixel's luminosity should correspond to the its colorcomponent in the foreground color or in the background color. An alphavalue of one means the subpixel's color component value should equal thecorresponding color component in the foreground color. An alpha value ofzero means it should equal the corresponding color component in thebackground color. An intermediary alpha values means the subpixel'scolor component value should be a weighted blend of the correspondingcolor components in both the foreground and backgound colors. Once asubpixel-optimized bitmap is represented in terms of alpha values it canbe used to represent bicolor images of a given pattern using differentforeground and background colors. This is commonly used to representfont shapes, since in the presentation of fonts the bitmap pattern of agiven character-font shape at a given size is often displayed withdifferent foreground and background colors.

In some embodiments of aspects of the invention relating to bicolorsubpixel optimizations of bitmap images a scaled subpixel-optimizedimage of a bitmap image is produced by associating a foreground orbackground bicolor coverage value with each subpixel of the scaled imageas a function of: (a) the ratio of the foreground or background colorfor each source image pixel in a source image window corresponding tothe area of the subpixel; (b) the percent of that window covered by eachsuch source image pixels; and (c) a color balancing function thatdistributes subpixel coverage values to reduce color imbalance. In casesin which a bicolor output image is being produced for either a grayscaleor a multicolor input image, the coverage values calculated forindividual subpixel's can be derived as a function of the whole pixelluminosity of source image pixels that cover its source image window. Insome embodiments, the extent to which a given luminosity valueassociated with a given subpixel's source image window is distributed toother subpixels is a function of extent to which the luminosity valuecauses a color imbalance.

FIGS. 42 through 44 illustrate a method of determining the luminosity ofeach subpixel of a grayscale bicolored image. In FIG. 42, rectangle 4200encloses a window of the source image that is associated with the red(R) subpixel of the scaled image. The luminosity to be associated withsuch red (R) sub pixel is a function of the whole pixel luminosity ofthe one or more source image pixels that cover the source image window4200, multiplied, respectively, by the percent of the source imagewindow covered by each such source image pixel. Any known method forcalculating or estimating such coverage percentages can be used.

In the embodiment illustrated in FIG. 42 source image window 4200 hasassociated with it two horizontal scan lines 4210 and 4220 and twovertical scan lines. FIGS. 43 and 44 illustrate the coverage lines forthe source image windows 4300 and 4400 for green and blue subpixels,respectively. As before, to estimate the extent to which the sourceimage window areas are covered by a source pixel, a mathematicalfunction that determines boundary locations at which the given coveragestarts and stops along each scan line is run. Coverage is calculated asa function of the lengths between one or more such boundaries or betweensuch boundaries and the boundary of the source image window associatedwith the given subpixel. This can be done in a manner similar to thatdescribed above in FIG. 29.

When calculating bicolor subpixel-optimized images, color imbalances mayoccur. This is because the bicolor methods is attempting to produce anoutput image in which each whole pixel has a color value in the spectrumbetween the two bicolors (usually black or white), but the coveragevalues of a pixel's individual red, green, and blue subpixels isdetermined by the percent of foreground color in each such subpixel,meaning that the color of individual output pixels would often have norelation to the desired bicolor spectrum (usually grayscale), in theabsence of such color balancing.

For example, in a grayscale image, if the source image makes atransition from totally white to totally black at a locationcorresponding to the boundary between a red and green subpixel in asubpixel optimized output image, the corresponding pixel in the outputimage will have a red subpixel coverage value that would tend to causethat subpixel to be turned totally on, and green and blue subpixelscoverage values that would tend to cause those subpixels to be turnedtotally off. This would result in a visible red color for the pixel,even though, in this example, the output image is supposed to be agrayscale image.

FIGS. 45 through 47 illustrate how a traditional linear color balancingmethod of a type used in the prior art to color balance subpixelcoverage values calculated from the rasterization of font outlines canbe used to color balance coverage values produced from bicoloredbitmaps.

FIG. 45 illustrates a set of grayscale source image pixels under an RGBgrid 4600. Grid 4600 has four pixel areas enclosed in bold linedivisions. Each such pixel area is associated with a whole pixel in asubpixel addressable screen on which the output image is to bedisplayed. Each pixel area is further divided into three areasassociated with the subpixels of the associated pixel on the subpixeladdressable screen. Subpixel-associated area 4610 is associated with thered (R) subpixel, subpixel-associated area 4612 is associated with thegreen (G) subpixel, and subpixel-associated area 4614 is associated withthe blue (B) subpixel. Subpixel-associated areas 4616 through 4632 areassociated with respective subpixels.

Subpixel-associated areas 4614 through 4630 are covered in whole or inpart by source image pixels having nonwhite coverage valuescorresponding to various degrees of the foreground color, which in thiscase is black. The total nonwhite coverage value of the source imagepixels in each of the subpixel-associated areas 4614 through 4630 ismapped into corresponding sub-pixel areas in the RGB grid 4700 of FIG.46. The height of the hatched area within each of the subpixel areas4744 through 4760 is determined by the total nonwhite coverage values ofthe corresponding sub-pixel areas 4614 through 4630.

The bottom half of FIG. 46 illustrates the use of a center-weighted,symmetrical color filter, which can be used to distribute the coveragevalue associated with the subpixel 4750 over five subpixels centeredaround the subpixel 4750. Three ninths ( 3/9^(ths)) of the coveragevalue of subpixel 4750 is distributed into sub-pixel 4750, itself. Twoninths ( 2/9^(ths)) of the coverage value of the subpixel 4750 isdistributed into the subpixels 4748 and 4752 that are immediately to itsleft and to its right, respectively. To complete the color distributionof subpixel 4750, one ninth ( 1/9^(th)) of its coverage value isdistributed into subpixels 4746 and 4754, which are two subpixels to theleft and two subpixels to the right, respectively of the subpixel 4750.

In general, color balancing distributes color values within aneighborhood of nearby pixels in which the nearby pixels are normallywithin a distance of no more than one full pixel from the subpixel whosecolor is being distributed, although in some embodiments that distancemight be as large as two pixels.

FIG. 47 illustrates the result of the symmetrical center-weighted colorbalancing filter of FIG. 46 when it is applied linearly to the coveragevalue calculated for each of the subpixels 4740 through 4762 shown inthe top half of FIG. 46.

In FIG. 47 the coverage value associated with each subpixel 4744 through4760, shown at the top of FIG. 47, is distributed using a color balancefilter that distributes its coverage value in the same proportion to itsown subpixel and to the two subpixels to the left and right as is shownin FIG. 46. The central grid 4802 of FIG. 47 graphically illustrates thesize of the contribution that such a distribution makes to each of thesubpixels 4740 through 4762. The distribution associated with each ofthe given subpixels 4744 through 4760 is centered in a vertical columnlocated directly below its respective subpixel.

RGB subpixel grid pattern 4804 shown at the bottom of FIG. 47illustrates the luminosity value that is calculated for each subpixel4740 through 4762 by summing all the contributions that have been madeto it by all of the coverage value distributions illustrated in thecenter panel 4802. To complete the method, the luminosity values of thered, green, and blue subpixels of each pixel in grid 4804 are used asthe three component color values that specified the color of each suchpixel.

While this linear method does reduce the color imbalance of the scaledimage, it does so at the expense a substantial reduction in spatialresolution. This can be understood by comparing the values in RGB gridpattern 4804 at the bottom of FIG. 47, which represents the subpixelluminosity values in the subpixel-optimized output image, to the valuesin RGB grid pattern 4800 at the top of FIG. 47, which represents theforeground color luminosity, or foreground color coverage value, of thesource image pixels corresponding to the subpixels of that output image.As can be seen by FIG. 47, the spatial resolution of the output image issmeared relative to the spatial resolution of the source image.

The present invention includes an innovation that provides similar colorbalancing of subpixel optimized output images, but often with much lesssmearing of the output image. It does so by using a non-linear colorbalancing filtering method. A method of applying this nonlinearfiltering is illustrated in FIGS. 48 and 49.

FIG. 48's RGB grid pattern 4900 is a duplication of the RGB grid pattern4700 of FIG. 46. Once again, the total foreground color luminosity, orcoverage values of the source image pixels that correspond to anassociated subpixel are represented by hatched areas.

The first phase in this non-linear color balancing method is illustratedin FIG. 48. As before, RGB grid pattern 4900 is divided into fourths bythe bold line divisions and each fourth, bracketed portion 4902, 4904,4906, or 4908, is associated with a whole pixel of the scaled, oroutput, image. Each of the pixel areas 4902, 4904, 4906, and 4908 isfurther divided into subpixel areas corresponding to subpixels in theoutput image to be produced. For each pixel area, a determination ismade of which of its sub pixels has the lowest foreground luminosity,coverage value, and a respective luminosity (or alpha) value equal tothis minimum coverage value is added to a luminosity/alpha value that isbeing calculated for each subpixel of the pixel areas 4912, 4914, 4916,and 4918 of the RGB grid pattern 4910, shown in the bottom half of FIG.48.

In the top half of FIG. 48 the hatched line 4920 indicates the minimumcoverage value of the pixel area 4902 is zero, since the first twosubpixel-associated areas have coverage values of zero. Thus, the stepshown in FIG. 48 sets the luminosity/alpha value for the red, green, andblue subpixel areas of pixel 4912 to zero. In like fashion, the minimumcoverage value of pixel area 4904 is determined by the value of the redsubpixel area 4922 of the pixel 4904. This minimum coverage value ismapped into the corresponding pixel area 4914 in the bottom half of thefigure. Similarly, the minimum coverage values of pixel areas 4906 and4908 are mapped into pixel areas 4916 and 4918 in the bottom half ofFIG. 48. The resulting partially calculated luminosity/alpha valuesafter the completion of this step are represented by the RGB gridpattern 4910 at the bottom of FIG. 48.

The second phase of the non-linear color balancing method is illustratedin FIG. 49. In this example of the second phase, the portion of theforeground luminosity/coverage value of each subpixel that is in excessof the pixel's minimum luminosity/coverage value is mapped into the RGBgrid pattern 4910 by utilizing a color balance distribution filter ofthe type shown above with regard FIGS. 46 and 47.

The pixel grid 5000 at the top of FIG. 49 corresponds to the pixel grid4900 at the top of FIG. 48 (and has the same sub pixels 4740 through4762) except that it represents the portion of each subpixel'sforeground color luminosity/coverage value (shown in high frequencyhatching) that remains after the value of the minimum subpixelluminosity/coverage value for the corresponding pixel (shown inlow-frequency hatching) has been subtracted from it.

The subpixel grid 5002 in the middle of FIG. 49 corresponds to thesimilarly shaped pixel grid 4802 in the middle of FIG. 47, except thatin it only the excess portion of subpixel foreground colorluminosity/coverage values shown in the top of FIG. 49 with the highfrequency hatching are distributed using color balance filters of thetype shown in FIG. 46. As can be seen in this portion of the figure, aportion of the excess luminosity/coverage value for each subpixel isdistributed to its own subpixel, to two pixels to the left, and to twopixels to the right using the same proportional filter shown in FIG. 46.

The portion of FIG. 49 near its bottom labeled by the numeral 5004 showsthe total of such excess luminosity/coverage value that is distributedto each subpixel 4740 through 4762 in this example of the non-linearmethod. The total excess luminosity/coverage value calculated for eachsubpixel is added to the minimum luminosity/coverage value that beenpreviously added to that subpixel by the step illustrated in FIG. 48, asis illustrated at the bottom of FIG. 49, to produce the totalluminosity/alpha value to be used for each subpixel in the output image.

To complete the non-linear color balancing process, the luminosity/alphavalues summed for each subpixel of RGB grid pattern 4910 are used todetermine the corresponding red, green, and blue, color component valuesof its associated pixel. The red, green, and blue color values of eachindividual pixel in such a display may not be equal, but the total ofthe red, green, and blue color values in any neighborhood of five or soadjacent subpixels of a pixel row should be substantially equal, orbalanced.

A comparison of the results achieved by use of the linear method and thenon-linear color balance filtering method is illustrated by FIGS. 50,51, and 52.

FIG. 50 illustrates the original unfiltered source subpixel foregroundcolor luminosity/coverage values as first mapped into RGB grid pattern4700 of FIGS. 46 and 4900 or FIG. 48.

FIG. 51 illustrates the result of the non-linear filtering method, asshown at the bottom of FIG. 49.

FIG. 52 illustrates the result of the linear filtering method, as shownin RGB grid pattern 4804 of FIG. 47.

As FIG. 51 shows, the output of the non-linear color balancing methodmore closely resembles the original spatial distribution of foregroundcolor luminosity/coverage values of FIG. 50 than does the result of thelinear method, as shown in FIG. 52. The pattern of luminosity valuesproduced by the non-linear method of FIG. 51 is significantly lessspatially blurred, and, thus, provide a higher visible spatialresolution than the output produced by the linear method. This isbecause the non-linear method seeks to perform color balancedistribution, which has the detrimental effect of blurring spatialresolution, only on those portions of subpixel luminosity/coveragevalues that need such distribution in order to prevent color imbalance.This can be seen by comparing the total of subpixel luminosity/coveragevalues distributed to each subpixel using the non-linear method FIG., asindicated by the numeral 5004 of FIG. 49, with the corresponding totalthat is distributed to each subpixel using the linear method, asindicated by the entire crosshatched area shown for each subpixel at thebottom of FIG. 47.

FIG. 53 provides a highly simplified pseudocode description of oneimplementation of the method described with regard to FIGS. 48 and 49 ofproducing a subpixel-optimized bicolor output bitmap using thenon-linear color balancing method.

The algorithm 5300 in this figure is comprised of a loop 5301 that isperformed for each pixel row in the image. This loop performs twosubloops 5302 and 5322 for each pixel row.

The loop 5302 performs a loop 5304, a function 5314 and a loop 5316.

The loop 5304 is performed for each subpixel in the current pixel ofloop 5302. For each such subpixel it performs a function 5306 and a loop5308.

The function 5306 determines which pixels of the source image are in awindow portion of the source image corresponding to the subpixel's areain the scaled image. This can be performed by any known coveragecalculation or estimation function, including the ones described abovewith regard to FIGS. 17 through 44.

The loop 5308, comprised of functions 5310 and 5312, is performed foreach source image pixel that is totally or partially contained withinthe current subpixel's source image window. Function 5310 calculates thepercent of the source image window's area covered by the source imagepixel's area. Function 5312 adds to a foreground colorluminosity/coverage value calculated for the current subpixel, themultiple of the percentage of the window area covered by the sourceimage pixel time the source image pixel's average foreground colorintensity.

In cases in which the bicolor image is a grayscale image, the foregroundcolor intensity can correspond to either the luminosity, or the inverseof the luminosity, of each whole source image pixel. If the source imageis a multi-color image, the average luminosity value of each sourceimage pixel's color components (i.e., its grayscale luminosity) can beused to determine a luminosity value that can be used for the sourceimage pixel in calculating its foreground color intensity for thepurposes of function 5312.

Loop of 5304 can be used to determine the subpixel foreground colorluminosity/coverage values of the type shown at the top of FIGS. 46.

Once the loop 5304 is been performed for each subpixel in the currentpixel, function 5314 finds the minimum subpixel luminosity/coveragevalue that has been so calculated for the current pixel, as isillustrated in the top half of FIG. 48.

Once this has been done the loop 5316, comprised of functions 5318 and5320, is performed for each subpixel in the current pixel.

Function 5318 sets a luminosity/alpha value being calculated for thesubpixel to the minimum subpixel luminosity/coverage value determinedfor its pixel by the function 5314, somewhat as is indicated in thebottom half of FIG. 48.

Function 5320 distributes the portion of the subpixel luminositycoverage value that exceeds the pixel's minimum subpixelluminosity/coverage value to the luminosity/alpha values beingcalculated for the subpixel and adjacent subpixel's in the current pixelrow using a color balance distribution filter, as is indicated in FIG.49.

In one embodiment of the invention, if the total of such distributionsmade to a given subpixel exceeds the maximum allowed luminosity/outputvalue, the subpixel's luminosity/alpha value is limited to that maximumvalue. Although this clipping causes some color imbalance, the inventorshave found the resulting imbalances to be hardly noticeable.

Once luminosity/alpha values have been calculated for each subpixel inthe row and the loop 5302 has been completed, the loop 5322 causes afunction 5324 to be performed for each pixel in the row. This functionsets the pixel color value equal to a color having a compound RGB valuewith red, green, and blue component values corresponding to theluminosity/alpha values calculated for the pixel's red, green, and bluesub pixels, respectively.

FIG. 54 illustrates an aspect of the present invention in which the userof a display device can dynamically make tradeoffs between the extent towhich a subpixel-optimized image produced from a source images isproduced by a multicolor subpixel optimization process or a bicolorsubpixel optimization process. An output image produced by themulticolor subpixel optimization can represent scaled down color imageswith reasonable color accuracy, whereas the bicolor subpixeloptimization in this example can produce only grayscale output images.But in some cases, such grayscale output images will have a moreaccurate spatial resolution and, particularly where the source image hasblack and white portions with sharp edges, less perceptible colorimbalance than an output image produced by the multi-color subpixeloptimization.

A Color bitmap image 5400 may be scaled and subpixel optimized byutilization of functions 5410 and 5430, which use a bicolorsubpixel-optimization method, such as one of those described above withregard to FIGS. 42 through 53, to produce a scaled andsubpixel-optimized grayscale bitmap 5440. Color bitmap image 5400 mayalso be scaled and subpixel optimized by a process 5420 that uses amulticolor subpixel-optimization method, such as one of those describedabove with regard to FIGS. 17 through 40, to produce a scaled andsubpixel-optimized color bitmap 5450.

According to an embodiment of the present invention shown in FIG. 54,the user of the display device can manipulate a control apparatus of thedisplay device, such as a pointing device, keyboard, or other inputdevice, according to process step 5460 in order to achieve a blend ofthe color bitmap 5450 and the grayscale bitmap 5440. The can be done,for example, by manipulation of a slide bar. Process step 5480 receivesthe grayscale bitmap 5440 and the color bitmap 5450 and the userselected color/grayscale tradeoff information and blends the colorvalues of the corresponding pixels from the grayscale and color bitmaps5440 and 5450, weighing color values from each as a function of the userselected color/grayscale tradeoff 5460.

In some embodiments of the type shown in FIG. 54, if the user selects atradeoff value at either extreme of the color/grayscale spectrum, theprocess can reduce computation by only calculating the bitmap 5440 or5450 that corresponds to that selected extreme.

A benefit of this aspect of the present invention is that the user of adisplay device can favor color balance and/or positional accuracy whenthat is most important or color accuracy when that is most important orsimply vary the tradeoff selection to find a more easily readabledisplay.

Not all aspects of the present invention require subpixel-optimizedtext, and many of those that do can use prior art methods of creatingsubpixel-optimized bitmap's of font shapes. However, some aspects of theinvention relate to innovations in methods of making font bitmaps.

FIGS. 55 through 97 relate to aspects of the invention relating to theforming and using subpixel-optimized font bitmaps

FIG. 55 illustrates a font outline 5500, in this case an outline of acapital letter “B” in a Times Roman font. The outline is shownsuperimposed over a subpixel grid 5502, which is composed of a pluralityof individual whole pixels 5504, each of which includes a red, blue, andgreen subpixel, 5506, 5508, and 5510, respectively.

The font outline shown in FIG. 55 is one that could be used for displayat relatively normal text sizes, indicating that the invention's methodof subpixel optimizing character-font shapes is applicable across abroad range of applications and is not limited to small screen displaysof the type shown at the bottom of FIG. 11. However, when this aspect ofthe invention is applied to small screen displays and/or the display offont at very small pixel sizes, it is preferred that the fonts used beoptimized for display at small sizes such as, in some embodiments, tenpixels per em or less, or eight pixels per em or less.

FIG. 56 illustrates a font that has been optimized for such smalldisplay on subpixel addressable screens. FIG. 57 shows the same bitmapat twice the size. Unfortunately the printouts of the bitmap shown inFIGS. 56 and 57 display the average luminosities of whole pixels andfail to capture the higher resolution made possible when such a bitmapis shown on a subpixel addressable display.

The font shown in FIGS. 56 and 57 have been produced by a hintingprocess that shifts selected boundaries of individual font outlines topixel boundaries, subpixel boundaries, and horizontal and verticaldimension's intermediary between subpixel boundaries. Such highresolution hinting is used in order to achieve optimum readability onsubpixel displays. It is done by having a font designer viewsubpixel-optimized bitmaps of individual characters with various hintingvalues until he or she feels relatively satisfied that the character isas clear as possible when display at such a small font size. As thoseknowledgeable of font hinting will understand, a font can have hintsthat dictate the alignment of individual portions of a font outlineacross all size renderings of that font, and special hints that areapplied for the character-font shape at certain pixel sizes. The fontshown in FIGS. 56 and 57 have been hinted to optimize their display ateight pixels per em, and some of them have specific hints that are to beapplied only at such small sizes.

In fact, most of the fonts in the 320 by 240 pixel resolution screenshots shown in the figures of this application are of 8 pixel per emfonts that have been specifically hinted for display at that size. Thesefonts allow a relatively large amount of web text to fit on a smallscreen, while allowing a relatively high level of readability. Thesefonts allow the large majority of lower case characters to berepresented in four pixel columns or less, including space thatseparates adjacent characters, if any. These fonts allow a majority ofcapital characters to be represented in 5 pixel columns or less.

The readability of such small fonts is greatly increased by the use ofeither subpixel optimization or anti-aliasing, because they allowsinformation about the extent to which a character shape covers a givenpixel to be represented at more than just a binary representation at thewhole pixel level. In fact, subpixel optimization can be considered atype of anti-aliasing because it, like traditional anti-aliasing causespixels that are partially covered by a font shape to have color valuesthat vary as a function of the extent of such coverage.

FIGS. 58 and 59 illustrate that subpixel-optimized bitmaps produced bythe present invention can be represented as font outlines and/or fontbitmaps. The font outline descriptions 5802 contain a mathematicalgeometric description of the shapes of one or more characters in a givenfont, preferably with hinting information designed to optimally placethe boundaries of character outlines at one or more different fontsizes. These font outlines can be ones, such as those just discussed,that have been designed to be rendered optimally on a subpixeladdressable display and/or have hinting that has been optimized fordisplay on a subpixel addressable display.

A font renderer 5806 can be used to create a subpixel-optimized bitmap5804 from such outlines, as is described below.

In some embodiments of the invention, illustrated in FIG. 58, a computer5808 and/or an application running on that computer displays text usingfont bitmaps or font outlines accessed over a computer network 5814 froma font server 5812. In other embodiments, illustrated in FIG. 59, acomputer 5900 and/or an application 5902 running on it have font bitmaps5804 necessary to render text stored within them. Such computers and/orapplications can store only font bitmaps, or they can store scalablefont outlines 5802 and render font bitmaps 5804 as needed at differentsizes.

The advantage of storing only font bitmaps is that it prevents the needto store font outlines and a font renderer on the computer 5900. It alsoprevents the need for the computation involved in font rendering.Furthermore, many font vendors are much more willing to allow fontbitmaps to be relatively freely available over the Internet then theyare font outlines.

The advantage of storing font outlines is that if one is interested inrendering fonts at a large variety of sizes, it is actually moreefficient to store the code necessary for the font renderer and to storescalable font outline descriptions than it is to store font bitmaps forall the different size characters.

The advantage of receiving fonts from a font server as shown in FIG. 58is that it allows a client computer 5808, such as that represented inFIG. 58, to represent text in any one of a large number of differentfont, size, and character combinations by downloading such fonts asneeded, without the need to store a large library of fonts. Preferablythe client computer 5808 will cache a reasonable number ofcharacter-font bitmaps so that there is no need to communicate over thenetwork 5814 every time it seeks to display a string.

FIG. 60 is a highly simplified pseudocode description of an algorithm6000 used by some embodiments of the aspect of the invention relating toproducing a subpixel-optimized font bitmaps. This algorithm usesnonlinear color balancing of the type described above with regard toFIGS. 48 and 49. Such a subpixel optimization algorithm is particularlyoptimal for use in the display of text characters, because the alignmentof text outline boundaries with whole pixel boundaries is quite commonin rasterized font shapes because of the use of hinting.

The algorithm 6000 of FIG. 60 includes a loop 6002 that is performed foreach pixel row in the rasterization of an individual character-fontshape at a given pixel resolution. This loop 6002 is comprised of threesubloop's 6004, 6008, and 6020, which are sequentially performed foreach pixel row.

The loop 6004 is performed for each subpixel in the pixel row for whichthe current iteration of the loop 6002 is being performed. For each suchsubpixel, the loop 6004 performs a function 6006, which determines theforeground color coverage value for each such subpixel as a function ofthe percent of the subpixel's area covered by the character-font shapeof which an image is being made.

FIGS. 61 through 90 are used to discuss methods that can be used todetermine the coverage value of each subpixel in step 6006 of FIG. 60.

As is indicated in FIG. 61, 62, and 63 the area in the image of thecharacter-font shape for which such a coverage value is calculated for agiven pixel 5504 corresponds to the area of the image that will bedisplayed by each red, green, and blue subpixel 5506, 5508, and 5510,respectively. This is different than in the case of subpixel-optimizedmulticolor images, in which the source image window corresponding toeach subpixel is larger, as is indicated in FIGS. 14 through 16 above.The source image window used by the method of FIG. 60 has the same sizesas the area of the source image window used for bicolor bitmapsdescribed above regard to FIGS. 42 through 44.

Such a higher resolution source image window can be used because thecharacter-font shapes described by most font outline descriptions arebicolor images, with the area covered by the font outline considered asbeing associated with a foreground color (in most cases, represented byan alpha value of one) and all other portions of the image beingassociated with a background color (in most cases, represented by analpha value of zero).

The calculation of the coverage values in function 6006 of FIG. 60 canbe performed using any prior art technique capable of rasterizing acharacter font outline relative to an array of pixels having the samespatial resolution as the subpixel's of the grid 5502 shown in FIG. 55.

FIGS. 64 through 67 illustrate some of the traditional methods that havebeen used to calculate the percentage of a unit in a rasterization gridthat is covered by a font outline 6402. In the prior art, the unit ofrasterization 6400 has typically been an area corresponding to a wholepixel in the output image. In the method of FIG. 60 it is an areacorresponding to a subpixel in the output image.

FIG. 64 illustrates one method of determining the coverage of arasterization unit 6400 that uses mathematical techniques to exactlycalculate the area of the unit that is covered by the outline 6402. Thisis relatively computationally expensive, and thus is hardly ever used.

A substantially more computationally efficient method is shown in FIG.65, which calculates the percentage of the rasterization unit 6400 thatis covered by the outline 6402 by using piecewise linear approximations6504 of the boundary of the character-font shape.

FIG. 66 illustrates an even more computationally efficient manner,although it produces a substantially less accurate results. This methoddetermines the percent of coverage of the rasterization unit 6400 bydetermining what percent of a set of sample points 6600 fall inside theshape of the outline 6402.

FIG. 67 illustrates a method of determining coverage values thatprovides more accurate results for the same, relatively low degree ofcomputation as the method of FIG. 66. It determines the coverage of therasterization unit as a function of the average percentage of each of anumber of scan lines 6700 and 6702 that are covered by the outline 6402.

FIGS. 68 through 87 illustrate an extremely computationally efficientmethod of calculating the coverage of a rasterization unit, which yieldsresults that are typically better than a sampling method such as thatshown in FIG. 66 for the same amount of computation.

An embodiment of this method is described in much more detail in a U.S.patent application filed in the name of one of the inventors of thepresent application, Sampo J. Kaasila. This U.S. patent application hasthe Ser. No. 09/363,513. It was filed on Jul. 29, 1999, and is entitled“Systems For Rapidly Performing Scan Conversion With Anti-Aliasing UponOutline Fonts And Other Graphic Elements”. This application issued asU.S. Pat. No. 6,437,793 on Aug. 20, 2002. This application also has hadits disclosure published in PCT application PCT/US00/21559. Thisapplication and the patent that has issued from it art incorporatedherein by reference in their entirety.

In the method of FIGS. 68 through 87, the coverage value for arasterization unit is determined by that percentage of one of its twoscan lines, a horizontal scan line 6804 or a vertical scan line 6802,that is covered by a font outline's shape 6402. The scan line whosecoverage value is used as the coverage value for the rasterization unitis that which has the more intermediate coverage value. For example, inan embodiment where the coverage for the horizontal and vertical scanlines is calculated in a range of values from 0 to 126, the scan linechosen is that whose value is closest to 63, which represents a 50percent coverage.

In FIGS. 68 through 71 it is the percentage of coverage of the verticalscan line 6802 that is used to represent the percentage of coverage ofthe rasterization unit 6400. In FIGS. 72 through 75 it is the horizontalscan line 6804 that has the most intermediate values, and, thus, whichhas its percentage of coverage used to represent the percentage ofactual coverage of the entire rasterization unit.

In all the rest of the FIGS. 76 through 87 it can be seen that thecoverage value of the scan line with the more intermediaries coveragevalue normally is very close to the actual coverage value for the entirerasterization unit, and that it normally never varies from the actualcoverage value of the entire rasterization unit by more than 25 percent.

FIGS. 88 through 90 represents other combinations of scan lines that canbe used according to a method that weighs the contribution of thecoverage values of individual scan lines to the estimated coverage valueof their associated rasterization unit as a function of which of thoseline coverage values have more intermediate coverage values. In suchmethods the coverage value calculated for entire rasterization unit canbe set equal to the sum of the coverage value of each scan line timesits mediality, all divided by the sum of each scans line's mediality. Inthis calculation, a scan line's mediality equals the scan line'smiddlemost percentage coverage value minus the absolute value of thedifference between that middlemost percentage coverage value and thescan line's actual percentage coverage value.

FIG. 91 illustrates a hypothetical font outline 9102 mapped over thered, green, and blue subpixels 5506, 5508, and 5510, respectively, of arow 9100 of pixels 5504.

FIG. 92 illustrates the corresponding coverage values 9202 that havebeen calculated for each of the subpixels in the row 9100.

FIG. 93 illustrates how the coverage values determined for an individualsubpixel can be distributed using a linear color balance method. Thislinear color balancing is identical to that described above with regardFIG. 46.

Returning briefly now to FIG. 60, once step 6006 of that figure hascalculated or estimated the coverage value for each subpixel of a row,as indicated in FIG. 92, a loop 6008 is performed for each pixel in therow. This loop color balances the coverage values calculated for thesubpixels of a row. It does not use a linear color balancing routine ofthe type illustrated in FIG. 93 and described above with regard to FIGS.46 and 47. Instead it achieves higher perceivable spatial resolution byusing a non-linear color balancing technique similar to that describedabove with regard to FIGS. 48 through 53.

The loop 6008 performs two functions, 6010 and 6012, and a loop 6014 foreach such pixel.

The function 6010 finds that subpixel of the current pixel that has theminimum coverage value calculated for its subpixel. Then step 6012 addsthis minimum coverage value to the temporary alpha, or opacity, valuebeing calculated for each subpixel of the current pixel. Thiscorresponds to the function described above with regard to FIG. 48.

Then a loop 6014 performs function 6016 and 6018 for each subpixel ofthe current pixel. The function 6016 determines, for the currentsubpixel of the loop 6014, the excess of the coverage value that hasbeen calculated for it over the minimum coverage value that has beenfound for the pixel of which the current subpixel is part. Then function6018 distributes this excess value across the subpixel alpha valuesbeing calculated for the current subpixel and the two subpixels to itsleft, and the two subpixels to its right in the current pixel row. Thisfunction corresponds to that described above with regard to FIG. 49.

FIGS. 94 and 95 illustrate two different color balance distributionfilters that are used in one embodiment of the present invention. Inthis embodiment a symmetrical center-weighted color-balance filter shownin FIG. 94 is used to distribute the coverage values associated with thered and green subpixels. The asymmetrical color-balance filter shown inFIG. 95 is used to distribute coverage values associated with bluesubpixels. Thus, this embodiment of the invention differs from theprocess described above with regard to FIG. 49 in that it useddifferently shaped distribution filters for some colors than for others.

One of the inventors of the present application has found that becausethe eye perceives green much more strongly that it does blue, that colorbalancing coverage values associated with differently colored subpixelsshould use such different distribution filters. In other embodiments ofthe invention relating to non-linear color balancing (including thenon-linear color balancing of bicolor images) a different colorbalancing filter could be used for each different color, the same colorbalance filter could be used for all colors, and either symmetrical orasymmetrical color balancing filters can be used.

The particular color-balancing filters shown in FIGS. 94 and 95 aredesigned for use with coverage values that are calculated on a scalefrom 0 to 126. A given coverage value having a value from 0 to 126 isassociated with one of the set of five distribution values on the righthand side of the tables of FIGS. 94 and 95 whose associated color valueon the left side of that table is closest to its own color value. Forexample, if the coverage value of the current subpixel was 126 for thecolors red or green, an addition of 1 would be made to the alpha valuebeing calculated for subpixels two to the left and two to the right ofthe current subpixel, an addition of 3 would be made to the alpha valuesbeing calculated for the subpixels one to the left and one to the rightof the current subpixel, and a value of 4 would be added to the alphavalue being calculated for the current subpixel. In this particularembodiment the alpha values are calculated on a scale from 0 to 12.

The relative size of the color balance distribution shown in the lastrow of FIGS. 94 and 95 reflect more accurately the desired distributionratios. This is because the larger value distributed in each of theselast rows allows greater numerical resolution than is found in the rowsabove each of them.

It should be appreciated that in other embodiments that use highernumerical accuracy to describe the coverage or luminance values beingbalanced, the balancing distributions would have ratios between thecontributions to different subpixels more like those reflected in theselast rows of FIG. 94 and/or FIG. 95. This is particularly true whenfilters of the general type shown in FIG. 94 and/or FIG. 95 are used inthe color balancing of bicolor subpixel optimizations of images, such asis described above with regard to FIGS. 48 through 52. This is because,in such bicolor subpixel optimizations of bitmap images, there is morereason to compute the luminance to be color balanced at a resolutioncorresponding to that used in the bitmap being subixel optimized.

Once loop 6008 of FIG. 60 has caused step 6018 to be performed for eachsubpixel of each pixel in a row, each pixel will have a separate alphavalue calculated for each of its three subpixels, with each such alphavalue having one of thirteen opacity levels. This means it is possiblefor each pixel to have 1 of 2,197 (i.e., 13³) different possiblecombined alpha values. In other embodiments of the invention alphavalues with higher or lower resolution can be used.

In many embodiments of the invention, particularly those designed to runon computers with limited computational capacity or in systems in whichit is desirable to reduce the bandwidth or storage capacity required tostore or download font bitmaps, it is desirable to map from therelatively large color space of the 2,197 combination of differentsubpixel alpha values possible after such color balancing into a smallercolor space.

The embodiment of the invention in FIG. 60 performs such a mapping. Oncethe loop 6008 has been performed for each pixel in the current row, aloop 6020 performs an additional function 6022 for each such pixel. Thefunction 6022 takes the three alpha values that have been calculated foreach of a pixel's subpixels and uses them as an input value of a lookuptable that maps from each of the 2,197 possible color value defined bythe possible combination of a pixel's three alpha values into 1 of 122values. In this embodiment the color space has been reduced down to sucha small number of colors so that a machine that has a 256 value colorspace will be able to display each of the 122 values selected for use inthe display of subpixel optimize fonts while still having over half ofsuch a limited color space for other uses. The uses of such a smallcolor palette to represent font bitmaps reduces the number of bitsrequired to store such font bitmaps and makes them more efficient todownload. In other embodiments of this aspect of the invention thesource and the destination color spaces used in such a mapping couldhave different sizes.

FIG. 96 illustrates the method 9600 that has been used to create such acolor mapping in one embodiment of the preferred invention. It is to beunderstood that in other embodiments, other types of mapping could beused. In some embodiments no such mapping into a smaller color spaceneed be used at all.

The method of FIG. 96 starts with a step 9602 that runs multiplecharacters from multiple fonts through the nonlinear color-balancedsubpixel optimization algorithm described above with regard to FIGS. 60through 95. When this is done, a histogram is kept of the number oftimes each of the possible 2,196 different composite pixel alpha valuesis calculated for any of the pixels. This histogram is useful becausemost of the three-colored alpha values calculated for pixels insubpixel-optimized font bitmaps tend to be concentrated into varioussmall regions of the total possible color space of 2,196 suchthree-color alpha values. This concentration is probably even morepronounced with non-linear color balancing, because it substantiallyreduces the amount luminosity distributions due to color balancing.

Next a function 9604 creates a limited color palette, in this casehaving 122 colors, by performing the functions 9606 and 9608. Thefunction 9606 selects, as part of the palette, the thirteen grayscalevalues that are possible for whole pixel alpha values, given that eachsubpixel can have one of thirteen alpha levels. Then the function 9608selects the 109 other most frequently occurring colors in the histogrampreviously calculated by step 9602.

Once the limited color palette has been selected, a loop 9610 isperformed for each of the 2,196 possible whole pixel alpha values. Foreach such possible alpha value a conditional 9612 tests to see if thatinput color exactly matches one of the 122 colors. If so, the function9614 associates the input color with its identical output color in thelookup table being constructed. If the condition 9612 is not met, a loop9618 and a function 9628 will be performed for the current input colorof loop 9610.

The loop 9618 is performed for each of the 122 output colors in thepalette. It has a conditional 9620, which tests to see if the differencebetween the red alpha value of the input color to be mapped and thecurrent output color of the loop 9618 is of the same sign as thedifference between the green alpha value of the current input color andthe green output alpha value for the current output color. Theconditional 9620 also tests to see if the difference between the redalpha value and the green alpha value of the current output color isless than the difference between the red alpha value and the green alphavalue of the input color (plus a possible value X to allow some leeway).If these two conditions, which are designed to prevent relativelynoticeable differences between an input color and the output color towhich it is to be mapped, are met, functions 9622 through 9626 will beperformed.

Function 9622 calculates the distance from the input color to the outputcolor. Function 9624 tests to see if that distance is the closestdistance so far to the input color in the current loop 9618. If the testof function 9624 is met, step 9626 saves the current output color of theloop 9618 as the closest allowed palette color. After the loop 9618 hasbeen performed for each of the 122 output colors of the limited palette,step 9628 associates the current input color of the loop 9610 with theclosest allowed palette color calculated in the loop 9618.

Once the loop 9610 has been performed for each of the possible inputcolors, each of those input colors will have been mapped to one of the122 output colors.

In the particular color mapping scheme shown in FIG. 96 non-grey scalepixel color values produced by color balancing get mapped in togreyscale color values if they do not get mapped into one of the onehundred and nine most frequently occurring non-greyscale color valuesselected by step 9608. This generally yields results at least as good astraditional anti-aliasing, which represents all bitmaps with a greyscalealpha value.

FIG. 97 illustrates an algorithm 9700 used to display font bitmaps of atype generated by the methods of FIGS. 60 and 96 on a subpixeladdressable screen.

The loop 9702, comprised of the function 9704 and loops 9706 and 9714,is performed for each string to be displayed.

Function 9704 samples a set of points in the rectangle of the bitmap atwhich the string is to be drawn, to determine the average backgroundcolor value for the string. In other embodiments the background color isseparately determined for each character or for each pixel of eachcharacter, but in the embodiment shown, the background color isdetermined only once for each string to save computation.

Once the background color for the string has been determined, loop 9706performs a subloop 9708 and a function 9712 for each of the 122 wholepixel alpha values, described above with regard to FIG. 96.

The loop 9708 performs a function 9710 for each of the three subpixelcolors. The function 9710 calculates the luminosity value for thecurrent subpixel color as a function of the components of the currentwhole pixel alpha value corresponding to the current subpixel color. Itsets the luminosity value it is calculating equal to this subpixel alphavalue multiplied by the luminosity of the current subpixel'scorresponding color in the foreground color of the string to be drawn,plus a quantity of one minus the current subpixel's alpha valuemultiplied by the luminosity of the current subpixel's correspondingcolor in the background color determined by function 9704.

Once this loop has been performed for each of the three subpixel colors,function 9712 maps the current whole pixel alpha value of the loop 9706into the whole pixel color value comprised of the three subpixelluminosities that have just been calculated in the loop 9708.

Then the loop 9714 performs the function 9716 and the loop 9718 for eachof the characters of the current string to be displayed on a subpixeladdressable display.

Function 9716 accesses the font bitmaps for the current character. Thenthe loop 9718 performs functions 9720 and 9722 for each pixel of thatbitmap. Function 9720 finds the color value that has been mapped by theloop 9706 into the current whole pixel alpha value indicated for thecurrent pixel in the character's font bitmap. Once this color value hasbeen found, function 9722 sets the corresponding pixel in the subpixeladdressable display to the that whole pixel color value.

Once the loop 9718 has been performed for each pixel of each characterof the string, the string will have been completely displayed in asubpixel optimize manner.

FIGS. 98 through 101 are used to illustrate how well the techniques forimage and font scaling and subpixel optimization work. FIGS. 98 and 100illustrate views of two different web pages laid out and displayed at640 by 480 pixels using a common browser program. FIGS. 99 and 101illustrate the same web pages after their images and text have beenscaled by the method described above so as to fit on a 320 by 240display. Unfortunately, the 320 by 240 pixel images are printed withgrayscale values determined by the average luminosity of its wholepixels, and thus the actual clarity added by subpixel resolution is notshown in these images.

FIGS. 102 through 113 illustrate in more detail the interaction betweena proxy server and a thin client computer in one embodiment of thepresent invention.

FIG. 102 is a highly schematic box diagram of a system including a proxyserver 210 and a thin client 200 of the type described above in regardto FIG. 2.

The proxy server 210 includes a browser 10200 that includes programming10202 to perform the standard functions of a full Web browser. Thisprogramming has been modified because the browser operates as a proxyfor the thin client. When the browser receives over the network an HTMLdescription 10204 of a requested web page, it creates a two dimensionallayout 10206 of that web page.

FIG. 103 illustrates a portion of HTML description of the web page whosedisplay is shown in FIGS. 98 and 99. The numerals 10300 shown in FIG.103 illustrates portions of text in the HTML that are shown in theleft-hand column of the web page shown in FIGS. 98 and 99. The numeral10302 points to an image tag that identifies the bitmap used torepresent the word “Sections” shown in the same column.

When the proxy browser code receives the download of the web page, itattempts to create a layout 10206 of that web page at a virtual screenresolution, which corresponds to the size of the window into which itthinks it is displaying all or a portion of the web page. We call thiswindow into which the browser thinks it is displaying the web page thevirtual screen 10208.

FIG. 104 illustrates the layout 10206 of the web page shown in FIGS. 98and 99, and it shows in heavy black rectangle 10208 the mapping of thevirtual screen into that layout. 10220 shows the actual screen imagethat is displayed on the thin client given the location of the virtualscreen shown in FIG. 104.

Many web pages today include elements larger than the 640 by 480 virtualscreen resolution used in the example system being described. The layoutwill have the minimum width required to layout the objects of the webpage, or the width of the virtual screen, which ever is larger. Forexample, it is common today for many web pages to be laid out with aminimum possible resolution of 800 pixels. In this case the virtualscreen will have a smaller width than the layout. This is the case inthe example shown in FIG. 104.

The view window 10210 shown in FIG. 102 represents that portion of thevirtual screen that is to be actually displayed upon the screen of thethin client. In views shown in FIGS. 99 and 101 the view window equalsthe virtual screen. But as the user zooms in on a portion of the virtualscreen, the zoom's scale factor control 10216 will change and the viewwindow will be mapped into a subset of the virtual screen.

Scroll control 10218, shown in FIG. 102, causes the view window to moverelative to the layout. If the view window is moved so that it includesa portion of the layout that is not on the virtual screen, a commandwill be sent to the browser software to scroll the virtual screen.

The event queue 10220 stores events, that is, user input, which havebeen received on the thin client and which have been uploaded to theproxy server for corresponding action by the browser. Events that occuron the screen of the thin client are mapped through the view window tothe corresponding locations on the virtual screen and then placed in theevent queue of the proxy browser, so that the proxy browser will respondto such input as if it had been received at the appropriate location onthe screen (i.e., the virtual screen) that it thinks it is drawingdirectly onto a video output device.

The browser programming 10202 of FIG. 102 has been modified so that eachtime it thinks it is drawing an object on the virtual screen it createsa corresponding scaled-down object at a correspondingly scaled locationin a download display list 10212.

This display list is downloaded over the network 10222 to the clientcomputer, which stores it as is indicated by the numeral 10212A. Thescaled down images referred to by this display list 10214 are alsodownloaded. Programming 10218 located on the thin client displays thestrings, images, and other elements contained in the display list on thethin client screen 10221. If the user clicks on the thin client screen,the operating system 10222 of the thin client places such a click andits location on the thin client's screen in an event queue 10224. Eachsuch event that does not relate to programming handled locally on thethin client is uploaded to the event queue 10220 of the proxy server, asdescribed above.

FIGS. 105A through 110 are highly simplified pseudocode descriptions ofprogramming and data structures on the browser and thin client computersdesigned to control their interaction for the purpose of allowing thethin client to browse web pages through the proxy.

FIGS. 105A and 105B are highly simplified pseudocode representations ofportions the browser's code 10202 shown in FIG. 102 used to help itfunction as a proxy browser for the thin client.

In the particular embodiment illustrated in these figures, a large Webbrowser designed for normal use has been patched so as to make itperform as a proxy. It is to be understood that in other embodiments ofthis aspect of the invention the functionality necessary to make thebrowser operate as a proxy could be more intimately and elegantlyintegrated into the browser's code. In yet other embodiments, code inthe operating system, or in functions that intercept operating systemcalls can be used to make a standard Web browsing program operate as aproxy for a thin client.

In the embodiment shown in FIG. 105A, if the proxy's browser receives arequest from the thin client for a web page, steps 10502 and 10504 relaythat request to the server computer indicated in the URL of the request.

If the browser receives an indication from its own code that the browserhas completed a draw or redraw of the virtual screen 10208 describedabove with regard FIG. 102, functions 10506 and 10510 will call thescreen capture and download routine shown in FIGS. 106A and 106C.

FIGS. 106A through 106C are highly simplified pseudocode descriptions ofthe screen capture and download routine 10600.

When this routine is called by function 10510, just described, its step10602 asks the browser for a screen redraw, which causes the browser tocall routines to draw each of the elements in the web pages layout thatall or partially fit within the virtual screen. The routine of FIGS.106A through 106B records information contained in each of these drawcalls and uses it to create the download display list 10212 shown inFIG. 102.

If the browser calls a measure string routine 10606 of FIG. 106A, thisroutine causes functions 10608 through 10618 to be performed. Such callsare made by the browser to determine the size of text it is seeking tolayout into the virtual screen. Although not shown in the figures, thesesame functions 10608 and 10610 are performed anytime the browser makes acall to measure string size, even if it is not during the operation ofthe screen capture and download routine shown in FIGS. 106A through106B.

Function 10608 maps the font specified in the measure string call into afont having a different font family and a different font size. This fontsubstitution is controlled by three considerations indicated by numerals10608 through 10616.

Consideration 10608 seeks to select a size for the substitute font as afunction of the requested font size in the call to the measure stringroutine and as a function of the display scale factor.

The display scale factor is a ratio of the resolution along a givendimension of the portion of the virtual screen 1028 corresponding to theview window and the resolution, along the same dimension, at which theview window will be displayed on the thin client. In some cases thedisplay scale factor will have different components to representdifferent scaling ratios to be used along the horizontal and verticaldirections, but in many cases the display scale factor will be comprisedof a single scaling ratio to be used for both horizontal and verticalresolution.

In the embodiment shown in FIG. 102, this scale factor is stored in theZoom/Scale Factor Control 10216. In cases where the virtual screen has aresolution of 640 by 480, the view window equals the size of the virtualscreen, and the view window is displayed on all of a 320 by 240 display,the display scale factor will be two, meaning that elements are to bedrawn on the screen of the thin client at ½ the pixel resolution atwhich the browser thinks it is drawing them upon its virtual screen.

Consideration 10612 replaces all font sizes that will be small whendisplayed on the thin client screen with font families that are narrowerand taller than the average pixel size of the font that would beselected by the consideration 10610 alone. When reducing from a 640×480virtual screen to a 320×240 display screen this can include most or allweb page text represented in characters, as opposed to bitmap, form.This substitution is done because the subpixel addressable displays usedwith this embodiment of the invention have three times the subpixelresolution in the horizontal direction as they do in the verticaldirection. Because of this, decreasing the width of characters has aless negative impact on readability than decreasing the their height.Thus, to display the maximum amount of relatively easily readable texton such a subpixel addressable display screen, this substitution causedthe width of characters to effectively be scaled down by more than thedisplay scale factor and the height of such characters to effectively bescaled down by less than the display scale factor. For example, thefonts of the small screen displays shown in FIGS. 56, 57, and 99, 101,168, 169, 172, 173, and 174 have all been substituted by fonts that havebeen scaled in such a manner.

The fonts in these figures have a pixel size of eight pixel per em. Amajority of the lower case letters in this font fit within an advancewidth of four pixel columns of less. This width of four pixel columns orless includes the spacing, if any, that occurs between the shapes ofcharacters having such widths. In these particular fonts, overeighty-percent the lower case characters of the roman alphabet fitwithin such an advance width These characters have an x-height of morethan four pixel rows, which makes them generally considerably tallerthan they are wide. As a general rule, such a relatively narrow font canrepresent a larger amount of text within a given area at a given levelof readability than a wider font.

The consideration represented by the numerals 10614 and 10616 tests tosee if a flag has been set to limit minimum font size, indicating thatno fonts should be shown on the thin client's display below a certainpixel size. Commonly this flag will be set to prevent the display oftext that is too small to read. It can be unset when the user desires tosee a more accurate scaled-down representation of how the web page textwould normally be laid out if actually shown on a display having thevirtual screen size. Such a desire is particularly likely when thedisplay scale factor is large, meaning that placing such a minimum limiton text size would drastically alter the appearance of the web page'slayout.

If, as is often the case, the system is limiting minimum font size, thensteps 10614 and 10616 prevent the substitute font size from being belowa minimum pixel size. In a current embodiment of the invention, thisminimum pixel size is eight pixels per em. The developers of thisembodiment developed hinted fonts for subpixel display at seven pixelper em, and although they found such fonts relatively easy to read, theyreceived feedback from other users that such small fonts were toodifficult to read.

The limitation on minimum font size often substantially changes therelative size at which a web page's variously sized fonts are actuallydisplayed.

In some embodiments of the invention, all Web text is displayed at onefont size. This actually works quite well for most web pages, because inmost web pages the truly large fonts are represented by bitmaps.

Once the function 10608 has determined which font family and font sizeshould be substituted for the font with which the measure string routinehas been called, function 10618 returns the string measurement of thestring with which the routine was called, given the size of the string'scharacters in the substituted font and font size, after that measurementhas been scaled up by the display scale factor.

The return of this value causes the browser's layout engine to lay outthe web page using font metrics for characters that are scaled up,relative to the pixel size at which those characters will actually bedisplays by the display scale factor, which is the ratio of theresolution of the portion of the virtual screen corresponding to theview window and the actual resolution at which the view window will bedisplayed on the thin client screen. This means that the virtual screenis being laid out using virtual font metrics that are different than theactual font metrics that will be displayed as a result of that layout.

If the screen capture and download routine receives a call to a stringdraw routine 10620, this routine causes functions 10621 and 10624 to beperformed.

Function 10621 transforms the screen position at which the string is tostart being drawn into the corresponding position on the thin clientscreen at which the string will ultimately be displayed. Thistransformation takes into account the mapping between the view window10210 and the virtual screen 10208 illustrated in FIG. 102. This mappingreflects both the current zoom setting stored by the control 10216 and acurrent scroll setting stored by the scroll control 10218 also shown inFIG. 102.

Function 10622 tests to see if the substituted font family and sizeassociated with the string by the prior call to the measure stringroutine, described above with regard to numerals 10606 through 10618,and any other font attributes requested for the display of the currentstring, are different than the current values for such font attributes.The current value for each such font attribute is defined by the lastvalue for each such attribute defined by a font commands alreadyrecorded in the download display list. If such differences are found,function 10623 stores a font command at the current end of the displaylist changing any such font attributes to those appropriate for thedisplay of the current string.

Function 10624 stores the string with which the string draw routine hasbeen called and the transformed screen position just calculated by step10622 at the end of the download display list 10212, illustrated in FIG.102. As described below with regard FIG. 108, this is done by placing astring command in the display list containing the string's transformedstart position and its characters

If the screen capture and download routine receives a call to arectangle draw routine 10626, this routine causes functions 10628through 10634 to be performed. Rectangle draw commands are commonlycalled by browsers to create areas of a web page with differentbackground color, as well as to draw horizontal and vertical lines thatcan be used as underlining for text or demarcations between differentportions of the web page's layout.

Function 10628 transforms the geometric values contained in the call tothe corresponding geometric values with which a corresponding rectanglewill be drawn on the thin client's display. This includes transformingthe rectangle's start screen position, and its width and its height.

Function 10630 tests to see if the rectangle's color is different thanthe current (i.e., last) rectangle color in the display list. If so,function 10632 adds a background color command to the end of the displaylist changing the current background color to the color specified in thecurrent call to the rectangle draw routine.

Next function 10634 stores the rectangle and its transformed screenposition, width, and height at the end of the download display list witha rectangle command.

If the screen capture and download routine receives a call to a bitmapdraw routine 10636 shown in FIG. 106B, this routine causes functions10638 through 10670 to be performed. Bitmap draw routines are called bybrowsers to display pictures, pictures of fonts, banner ads, and imagesassociated with hot zones and other graphical user interface bitmaps ofa page.

In some embodiments, only the first screen of given animations arecaptured and recorded to the download display list to reduce the amountof bandwidth required to display web pages. In other embodiments,particularly those with higher bandwidth links such a restriction neednot apply In the embodiment of the invention that is described withregard to FIGS. 106A through 160C, bitmap draws associated with certaingraphical user interface's are ignored because the thin client'sprogramming stores subpixel-optimized, scaled-down bitmaps for suchcontrols.

Step 10638 tests to see if the URL of the image for which the bitmapdraw routine has been called is already in a download image list, notshown in the figures, which contains each of the images referred to inthe download display list. If not, the requested bitmap has not yet beenprocessed for the current download and functions 10642 through 10662need to be performed for it.

Function 10642 tests to see if the bitmap is a color bitmap. If so itcauses functions 10644 through 10654 to be performed. Function 10644scans the color images for one or more individual areas of sufficientsize to justify separate treatment, which each contain only colors froma single bicolor spectrum. A bicolor spectrum corresponds to a set ofcolors that lie in a line in an RGB color cube (i.e. a color cubedefined by red, green, and blue value ranges in each of its three majordimensions).

For each bicolor portion of the image found that is large enough tojustify individual processing, function 10646 causes functions 10648 and10650 to be performed. Function 10648 performs a bicolor subpixeloptimization, of the type described above with regard to FIGS. 42through 53, on the current portion of the image using the most extremeends of its bicolor spectrum as its foreground and background colors,and using the current display scale factor to determine the extent towhich it scales down that portion of the image. This subpixeloptimization, like that performed in steps 10654 and 10658 described inthe next few paragraphs, scales down the image by the display scalefactor, which is the ratio between the resolution of the image in thevirtual layout of the proxy browser and the resolution at which it willbe displayed on the thin client's screen.

After this subpixel optimization has been performed, function 10650determines if the foreground color is too chromatically unbalanced. Thatis, it is to close to a pure red, green, or blue color. If this is thecase, such color purity would decrease the accuracy with which it candisplay the spatial resolution of the color image. If this is the case,the foreground color can be replaced by a corresponding color that iscloser to a grayscale value, and thus that will allow more accuratespatial representation.

In some embodiments of the invention such foreground color substitutionwill not be used because it might upset the color balance of the colorimage. In general it is best not to use such foreground colorsubstitution unless the foreground color appears throughout asubstantial portion of the entire color image. In other embodiments ofthe invention the background color associated with a bicolor image couldbe changed. But the Changing of the background colors of images on webpages is often unadvisable.

For each non-bicolored portion of the current image, function 10652causes step 10654 to perform a multicolored subpixel optimization, ofthe type described above with regard to FIGS. 14 through 41, on thatportion of the bitmap at the current display factor.

If the bitmap for which the bitmap draw routine has been called is agrayscale bitmap, function 10656 causes step 10658 to perform a bicolorsubpixel optimization, of the type described above with regard to FIGS.42 through 53, on the bitmap using black and white as the foreground andbackground colors at the current display scale factor.

Then function 10662 stores the scaled-down, subpixel-optimized bitmap atthe end of the image list with a unique image ID, its URL, and itsscaled width and height.

Whether or not the image with which the bitmap draw routine has beencalled was previously in the image list, by the time the programadvances to function 10664 it will be in that list, and will have beenassigned an ID number and a transformed width and height. At this timefunction 10664 transforms the screen position with which the bitmap drawroutine has been called for the image to one applicable to the thinclient's screen, and then stores an image location command of the typeshown in FIG. 108 having the image's image ID, its transformed screenposition, and its transformed width and height at the end of thedownload display list.

In some embodiments of the invention all bitmap images aresubpixel-optimized using the multicolor subpixel optimization routine.In other embodiments only grayscale bitmaps undergo any bicolor subpixeloptimization.

In some embodiments of the invention vector images can be handled byperforming subpixel optimization upon the shapes defined by such vectordescriptions. In some such embodiments such subpixel optimization isperformed on the proxy, but in others it is performed on the thinclient. One of the advantages of vector, or geometrically defined,drawings is the compactness with which their descriptions can representan image. Thus when bandwidth to the thin client is a primaryrestriction, it might well make sense to download vector descriptions ofimages and have the thin client then render them using subpixeloptimization.

It is possible in some embodiments, to have image recognition performedupon images, and then have the recognized images downloaded to the thinclient in a symbolic representation. For example, it is common in manyweb pages to represent large text with bitmaps. Optical characterrecognition could be performed on such bitmaps, and correspondingcharacters and their font, or an approximation of their font could bedownloaded symbolically, so as to reduce the bandwidth required in orderto describe the page to the thin client.

If the screen capture and download routine receives a call to theroutine to create a control object, such as a radio button, check box,text field, or button from the browser, the controlCreate routine 10666shown in FIG. 106C causes functions 10667 through 10670 to be performed.Function 10667 transforms the screen position at which the browser hasrequested a control to be drawn to the location at which it is to bedrawn in the thin client's screen. A function 6668 places acorresponding control create command as indicated in FIG. 108 in thedownload display list, including its corresponding text label, andfunction 10670 creates a corresponding browser-side portion of thecontrol object.

In this embodiment of the invention the functionality of a controlobject shown in the thin client's screen is shared between the proxy andthe thin client. State information, such as whether not a check box ischecked, or which of a set of radio buttons has been pushed, is storedon the thin client. This prevents the need for communication from thethin client to the proxy every time the user enters information intosuch a control object. Usually it is only when the user clicks a buttonindicating that the information stored for such controls is to betransmitted to the remote server computer that originally generated theweb page that the client needs to send such information to the proxy,for relay to such a server.

In other embodiments of the invention having a higher bandwidth link tothe thin client, it might be desirable to simplify the code of the thinclient, by having more or substantially all of the functionalityassociated with individual control objects run on the proxy.

When the screen capture and download routine determines that the screenredraw requested by function 10602 of FIG. 106A is complete, function10672 of FIG. 106C causes function 10764 to call the download displaylist routine 10700 shown in FIG. 107.

As shown in FIG. 107, the download display list routine has a function10702 that places all elements in the download display list that are tobe totally or partially newly displayed on the new thin client's screenin a download stream. Normally this includes any elements in thebrowser's virtual screen that occur within the current view window. Asis explained below, however, in the case of a scroll in which asignificant portion of the prior bitmap on the thin client's screen canbe reused, only elements that occur at least partially in the portion ofthe view window that does not correspond to the reusable portion of thethin client screen's current bitmap are placed in the download stream.

In many embodiments of the invention the functions of FIGS. 106A through106C that creates the download display list do not enter an element onthe download display list if it does not fit within the view window. Inother embodiments this filtering takes place in function 10702.

In some embodiments of the invention elements that are downloaded areclipped, so that only those portions of such elements that are toactually fit within the thin client screen are downloaded. This wouldhave the benefit of decreasing the number of bits required for download,but it would add computational complexity.

Once all the elements on the download display list to be shown on thethin client screen have been placed in the download stream, function10704 places the bitmaps of all images with a corresponding imagelocation command in the download stream at the end of the downloadstream, as indicated by the numeral entries 10818 in FIG. 108. Someembodiments of the invention, before they places such bitmaps at the endof the download stream perform a lossy compression on them. In someembodiments, the algorithm used is one that clusters the color values inthe image into clusters of colors having visually imperceptibledifferences in RGB color values, using a metric that takes into accountthe fact that green color values differences are more perceptible thanred color value differences, and that red color value differences aremore perceptible than blue color value differences.

Then function 10705 compresses the download stream, including the imagespreviously compressed by the lossy algorithm, using a losslesscompression algorithm. Standard prior art lossless compressionalgorithms can be used for this purpose.

FIG. 108 is a schematic illustration of such a download display stream.In some embodiments such a stream is actually represented using a markuplanguage.

The font commands 10812 shown in FIG. 108 represent font commandsrecorded in the display list by function 10623 of FIG. 106A.

The string commands 10814 of FIG. 108 represent commands recorded in thedownload display list by the step 10624 of FIG. 106A.

The background color commands 10806 of FIG. 108 represent the backgroundcolor commands entered by the function 10632 shown in FIG. 106A.

The rectangle commands 10808 of FIG. 108 represent rectangle informationstored by function 10634 of FIG. 106A.

The image location commands 10810 shown in FIG. 108 represent imagelocation commands recorded by the function 10664 of FIG. 106B.

The control commands 10816 of FIG. 108 represent control commands placedin the download display list by the function 10668 of FIG. 106C.

Returning now to FIG. 107, once all the elements for the download streamhave been selected and the stream is ready to be sent, function 10706opens a socket connection between the browser computer and the thinclient, and then function 10708 sends the download stream's display listinformation down to the thin client. The thin client then displaysinformation, as is described below in greater detail with regard toFIGS. 109A through 109C.

Returning now to FIG. 106C, once the call in the function 10674 to thedownload display list routine is complete the function 10676 clears thedisplay list, so the new display list can be created for the next screenthat is to be downloaded to the thin client.

Returning now to FIG. 105A, we have just described the completion of thescreen capture and download routine called by function 10510 shown inthat figure.

As shown in FIG. 105A, if the browser's proxy code receives a query fromanother portion of the browser code for the state of one or more controlobjects displayed on the thin clients screen, function 10516 sends aquery to thin client for the state of that one or more control objects.When such state information is received from the thin client, it isreturned to the programming that made the request for such stateinformation.

As was described above with regard to functions 10666 through 10670 ofFIG. 106C, this embodiment of the invention actually has the thin clientdraw and store state information about individual control objects, suchas radio buttons, check boxes, and text entry fields, to reducecommunication bandwidth as the user changes information prior toselecting to have it submitted to the web site on whose web page suchcontrols are shown. Commonly when the user clicks a submit button theassociated click event is transmitted up to the proxy computer, it hasits screen coordinates transformed the corresponding coordinates on thevirtual layout screen, and then it is placed in the browser's eventqueue for the browser code to respond to that click event as if it hadbeen generated on the screen, having the virtual screens resolution,that the browser thinks it is displaying. Once this is done, thebrowser's standard code asks for the state of all of the current webpage's control objects, so it can post that information back to the webserver from which the current web page came. It is such requests thatcause the operation of functions 10514 through 10518.

If the browser's proxy code receives a scroll or move command from thethin client, functions 10522 through 10534 of FIG. 105A are performed.

Function 10522 moves the view window 10210 shown in FIG. 102 relative tothe browser's layout 10206 in response to the scroll or move. Thenfunction 10526 tests to see if any significant portion of the viewwindow that was in the view window before the move is still in the viewwindow after the move. If this is the case, it means a substantialportion of the bitmap currently being displayed on the thin browserscreen can be reused in the display after the requested scroll or moveis accomplished. In this case function 10528 places a scroll command10804, illustrated near the top of the download stream in FIG. 108, atthe start of the new display list that is to be created for the scrolledscreen. Such a scroll commands includes an XY shift value that indicateswhich portion of the thin client's prior screen bitmap is to be reused.

In FIG. 108 both a clear command 10802 and a scroll command 10804 areshown at the start of the download stream, so that both can beillustrated. In the current embodiment only one of these two commands,the clear command or the scroll command will start a download stream,with the first being used if the screen of the thin client is to betotally redrawn, and the second being used if a portion of the thinclient screen's prior bitmap is to be shifted for reuse in the newscreen.

The reuse of a substantial portion of a screen display that has beenpreviously downloaded and drawn, made possible by the use of the scrollcommand, can substantially reduce the amount of data that has to bedownloaded to the thin client in scrolls that involved relatively smallchanges in position. This can substantially speedup the rate at whichscrolled screens can be displayed on the thin client, particular insituations in which there is a limited bandwidth between the browser andthe thin client, such as if they're communicating over the relativelyslow digital cellular link common at the time this application is beingfiled.

If the moved view window that results from a scroll or move commandincludes a portion of the web page's layout not currently in the virtualscreen 10206, shown schematically in FIG. 102, function 10530 of FIG.105A causes functions 10532 and 10534 to be performed. Function 10532scrolls the browser's virtual screen so that all of the view window willbe contained within it, and then function 10534 requests a redraw fromthe browser for the newly moved virtual screen. Once this redraw iscomplete functions 10506 and 10510 will capture the newly drawn elementsand will draw them, as has been described above with regard to FIGS.106A through 106B.

If the browser's proxy receives a zoom command from the thin client,function 10536 of FIG. 105A causes functions 10538 through 10552 to beperformed.

Function 10538 changes the display scale factor according to the zoomchange.

Function 10540 scales the view window relative to the browser's virtualwindow according to the selected zoom.

Function 10542 checks to see if the scaled view window includes portionsof the web page's layout not currently contained within the virtualscreen. If so, it causes function 10544 to scroll the virtual screen orchange its resolution to make the scale view window fit within thevirtual screen.

If scrolling the virtual screen will enable to new view window to fitwithin the virtual screen, there is no need to re-layout the web page,and the zoom can be used to display the same layout as existed beforethe zoom, by showing a different location within it and/or by displayingit at a different scale factor. If, however, the zoom is a zoom out thatcauses the view window to be larger than the virtual screen size, in theembodiment shown in FIG. 105A, this will require that the web page belaid out at a new virtual screen size that allows the view window to fitentirely within it the virtual screen, so that the proxy browser canhandle any input supplied to any portion of the view window displayed onthe client as if it had occurred at a corresponding location on theproxy browser's virtual screen. In the embodiment being described, thismay cause the web page to be displayed at a new layout if the newvirtual screen resolution is larger than the layout resolution used inthe previous layout, and this can cause line breaks to occur indifferent locations.

In other embodiments of the invention, such as ones in which proxybrowser was designed, rather than patched, to support zoomed views, andsuch as the ones described with regard to FIG. 115 in which the clientzooms directly relative to a download of an entire layout, extreme zoomouts need not require a re-layout of the web page.

Finally function 10552 calls for a screen redraw. This causes the screencapture and download routine to capture the redraw of the current viewwindow with the new zoom scale factor, and download correspondingdisplay information to the thin client so they can display the web pageat the new zoom setting.

As indicated in FIG. 105B, if the browser's proxy receives a virtualresolution change command from the thin client, function 10554 causesfunctions 10556 through 10560 to be performed. Function 10556 changesthe browser's virtual screen resolution to the requested resolution.Then step 10560 calls for a screen redraw. This is because the browserre-lays out the current web page at the new virtual screen resolution,and redraws all of the current view window to be captured at thedisplay's scale factor corresponding to the ratio between the number ofpixels the view window has in the virtual screen relative to the numberof pixels it has on the thin client screen.

Such a change in virtual resolution changes the size at which a layoutis performed relative to the size of images and text within such alayout. Such a change in relative layout size changes the size at whichimages and text will be displayed on the screen, unless the user makes achange in the relative size of the view window relative to the virtualscreen that cancels such a change in size. In the absence of such acompensating change in relative view window size, decreasing the virtualresolution increases the size at which images and text will be shown onthe screen, and tends to make the text lines shorter relative to thesize of the fonts shown on them, so as to allow more of text lines tofit on the screen at one time at a larger text size. Thus, changes invirtual layout size can be used to provide a certain type of zoomcapability to the display of web pages.

The inventors have found that quite good readability can be suppliedusing virtual screen of 640 by 480 when displaying web pages on atypical PDA-sized 320 by 240 screen, which involves scaling down thelayout by a factor of 2. However, the invention can be used to displayweb pages at even more reduced scales, such as displaying an 800 by 600virtual screen resolution on a PDA-sized 320 by 240 display, even thoughreadability will suffer, so as to enable a user to see how the web pagemight look when laid out for larger resolution displays. Of course, ifthe reader chooses to have the minimum font size limited, as wasdescribed above with regard to function 10614 of FIG. 106A, the text,even with such a large virtual resolution would still be shown withreadable fonts, although the layout of the page would be quite differentthan that originally intended for display at such a resolution, becauseof the relative increase in font size that would result.

As indicated by function 10562 of FIG. 105B, if the browser's proxy codereceives other user input from the thin client associated with a clickon the thin client's screen, function 10564 transforms the thin clientscreen position associated with the click to the corresponding positionon the virtual screen, and function 10566 relays the event to thebrowser's event queue so that it can respond to it as if the user hadactually clicked on the virtual screen that most of the browser's codethinks it is laying out.

This is the method by which the browser on the proxy responds to inputthe user of the thin client makes to select most links, whether they betext links or image links, on the web page displayed on the thin client.For example, if the user clicks on a link displayed on the thin clientsscreen, the corresponding click will be relayed to the browser on theproxy, which will act as if the user had clicked on the same link in thevirtual screen that it thinks it is displaying. The proxy's browser thenresponds by issuing an HTTP request over the Internet corresponding tothe link. When the web page corresponding to that link is received, thebrowser will lay out and seek to display it on the virtual screen,causing functions 10506 and 10510 of FIG. 105A to capture theinformation contained in that the portion of the layout corresponding tothe view window and to download it to the thin client for display onit's screen. As a result, the user of the thin client is able to surfthe Web, in much the same manner as a user of a normal browsingcomputer.

FIGS. 109A through 109C are highly simplified pseudocode representationsof code 10900 on the thin client computer designed to help it operate inconjunction with the proxy browser to enable its users to browse theWorld Wide Web using its screen.

Function 10902 of FIG. 109A responds to the receipt of all or an initialportion of the download stream sent to the thin client by function 10708of FIG. 107. It does so by starting to respond to the individualcommands, of the type illustrated in FIG. 108, contained in that streamin the order in which they are received. It starts doing this as soon asone or more such commands are received so that the work of drawing thenew screen need not be delayed until the download stream has been fullyreceived. The response to each different type of command contained inthe download stream is indicated by the functions numbered 10904 through10956 in FIGS. 109A through 109B.

As indicated by functions 10904 and 10906, when the thin client reads aclear command in the download stream it causes the bitmap displayed onits screen to be cleared, or set to a totally white value.

When the thin client reads a scroll command in the download stream,function 10908 causes functions 10910 and 10912 to be performed Function10910 copies the portion of the thin client's screen's bitmap that is tobe reused after the scroll specified in the scroll command to a newposition on that screen indicated by the XY shift value included in thecommand. Then function 10912 clears the remaining portion of the screen.

When the thin client reads a background color command in the downloadstream, functions 10914 and 10916 set the current rectangle backgroundcolor variable to the color specified in the command. This causes allrectangles drawn by the thin client in response to rectangle commandsuntil the background color value is changed again to have that specifiedcolor value.

When the thin client reads a rectangle command in the download stream,functions 10918 and 10920 draw a rectangle, using the current backgroundcolor, having a screen position, width, and height specified in thecommand.

When the thin client reads an image locations command, functions 10922and 10923 do nothing at that time. This is because the bitmap'snecessary to draw the image referenced in such an image locationscommand usually will not have been received at such time. In otherembodiments, the browser associates rectangle draw commands with images,which will cause the portion of the thin browser screen associated withimages to have a rectangle drawn on them indicating where a bitmap imageis to be displayed.

When the thin client reads a font command, functions 10924 and 10926 setthe value of all font attributes listed in the font command to thevalues listed for those attributes in that command. In differentembodiments of the invention different font attributes can be used. Itis preferred that at least font family, font size, and font foregroundcolor be supported font attributes.

When the thin client reads a string command in the download stream,function 10928 causes functions 10930 through 10940 to be performed.

Functions 10930 tests to see if the thin client has in its font bitmapcache a bitmap for each character of the current string in the currentsize and font family specified by the current font attribute values. Ifnot, functions 10932 through 10936 are performed.

Function 10932 sends an HTTP request over the thin client's Internetconnection to the font server 134 described above with regard to FIG. 2.When the requested font is received from the font server, functions10934 and 10936 place it in the thin client's font bitmap cash.

It should be noted that some embodiments of the invention permanentlystore, as part of the thin client browser software, a sufficient set offont bitmaps so that the use of the functions 10930 through 10936 arenot necessary. In other embodiments, subpixel-optimized font outlinesare either stored permanently by the thin client or are requested asneeded, as are the font bitmaps in the example described in FIG. 109A.

When the thin client has all of the font bitmaps necessary to render thecurrent string, functions 10938 and 10940 draw the string using thecurrent font attribute values including foreground color, upon thescreen at the specified screen position. In the current embodiment fontbitmaps are represented as alpha value bitmaps of the type describedabove with regard to FIGS. 60, 96, and 97. When doing so, the backgroundcolor is derived from the portion of the bitmap over which the string isto be drawn.

In some embodiments, in order to reduce computation, the color value ofthe portion of the screen over which the string is to be drawn issampled at a relatively few number of points, and the average of thosesampled color values is used as the background color for the entirestring display, as is described above with regard to FIG. 97.

In the embodiment being described, all of the strings contained in thedownload stream are single line text strings, many of which may haveresulted from the wrapping of continuous text across line boundaries bythe proxy browser's layout engine. As a result, in this embodiment, thethin client does not have to perform any such wrapping of text.

Function 10940 draws a bitmap image of a strings by composing it from aplurality of separate font bitmaps corresponding to the letters of thestring. Normally in such composition each different separate characterwill be represented by a different separate font bitmap.

It is preferred that the fonts used in such composition at differentfont sizes (such as different font sizes caused by changes in scalefactor) have the shape and pixel alignment of each character selected toimprove readability at each such font size. In most embodiments thisimproved readability is produced by selecting the character shape andposition relative to a font bitmap so as to increase the alignment ofthe character shape with the pixelation of the bitmap. Such shape andpixel alignment is particularly critical when dealing with font bitmapsof ten pixels per em or less, and is even more critical at eight pixelsper em or less. This is because as font bitmaps became smaller theybecome more difficult to read because of their more course pixelation,and thus it becomes even more critical that they have character shapesand alignments selected to fit such pixelation.

FIGS. 56, 57, and 99, 101, 168, 169, 172, 173, and 174 illustrate pixeloptimized font bitmaps that have drawn by a thin client. In manyembodiments of the invention the font bitmaps used by step 10940 atsmaller scales are subpixel optimized bitmaps created by non-linearcolor balancing of the type described above, in which only colorimbalances that occur within a pixel are distributed. When suchsubpixel-optimization is combined with character shapes that have beenproperly shaped and aligned to better match their bitmap pixelation, theresulting bitmaps drawn are amazing easy to read considering their smallpixel size.

Returning now to FIG. 109B, when the thin client reads a control commandfrom the download stream, function 10942 causes functions 10944 through10948 to be performed.

Function 10944 tests to see if the thin client has already created adata or program object corresponding to the control ID specified in thecurrent control command. If not function 10946 creates such a data orprogram object of the type specified in the control command andassociates it with the control ID specified in that command.

Then step 10948 draws a subpixel-optimized bitmap of the specified typeof control object on the thin client's screen at the location specifiedin the control command. It then draws the text associated with thecontrol on the control object's bitmap using subpixel-optimized fonts.Then it associates a hot zone, having a display screen positioncorresponding to the control's bitmap, with the data object or programobject representing the control on the thin client.

When the thin client reads an image command from the download stream,function 10950 causes functions 10952 through 10956 to be performed.

Function 10952 scans the current display stream for all occurrences ofan image location command that has the same image ID as the currentimage command. For each such image location command, it causes function10954 to draw the bitmap at the location specified by that imagelocation command upon the thin client's screen. As with all the thinclient's draw functions, any portion of the image that does not fit onthe thin client screen is clipped in such draw operations.

Next function 10956 redraws all other items in the display list thatoccur at the same location as any of these drawn bitmaps. This isnecessary because it is common for web pages to place text on top ofimages, and, thus, it is desirable that any strings that are intended tobe displayed at the same location as a bitmap image be redrawn afterthose images are drawn. In one embodiment of the invention, the thinclient merely redraws all non-image elements of the download stream'sdisplay list that occurs after the first image location command in thatlist.

If the user clicks on a hot zone 11000 associated with a text entryfield, as indicated in FIG. 110, functions 10958 and 10960 of FIG. 109Bcause a keyboard routine comprised of functions 10962 through 10978 tobe executed.

Function 10962 displays a pop-up user keyboard 11102 and text edit field11104, illustrated in FIG. 111, on the thin client's screen. Then a loop10964 is performed until the user presses the enter key on the pop-upkeyboard. During this loop each time a user types a text character,function 10966 causes function 10968 to place a subpixel-optimized textbitmap of the character on the pop-up keyboard's text edit line at thecurrent cursor position and moves the bitmap of the cursor to a positionafter the newly drawn character, and then function 10970 adds the typedcharacter to a temporary text edit string associated with the pop-upkeyboard's programming.

When the user presses the enter key of the pop-up keyboard, function10972 causes functions 10974 through 10978 to be performed. Function10974 stores the value of the temporary text edit string associated withthe pop-up keyboard in the text edit control for which the pop-upkeyboard has been evoked. Then function 10976 draws the characters ofthat text edit string, using subpixel optimized bitmaps, in the bitmapof the text entry field 11000 of the control object on the thin client'sscreen, as shown in FIG. 112.

Then function 10978 removes the pop-up keyboard from the thin client'sscreen by drawing over it the bitmap that was displayed on-screen beforethe pop-up keyboard was drawn.

FIG. 113 illustrates that the pop-up keyboard routine can be used forother purposes besides entering text in text entry field. Although it isnot represented in the pseudocode of FIGS. 109A through 109C, the pop-upkeyboard can also be used to enter the URLs of web pages a user wouldlike to see displayed on the thin client.

FIG. 114 is virtually identical to FIG. 113, except it illustrates anembodiment of the invention that has a button bar, or Toolbar, at thetop of its graphical user interface. This button bar includes at itsleftmost end back and forward buttons of the type commonly found in Webbrowsers. It also includes buttons labeled R, B, and H that correspondto a refresh button, a bookmark button, and a history button, which arealso functions commonly found on Web browsers. The button bar alsoincludes an URL text entry field, which if clicked will cause the pop-upkeyboard shown in FIG. 114 to appear. When the pop-up keyboard is notbeing displayed, this text entry field displays the URL of the currentweb page displayed on the thin client's screen. In one embodiment of theinvention a user can select whether or not to display such a toolbar bypressing a hardware button. In this embodiment, even when such a toolbar is not shown the user can use hardware buttons to invoke some of themore common web browsing functions, such as the back command and forwardcommands.

In other embodiments of the invention, such a graphical user interfaceToolbar would preferably also include buttons or menus allowing the userto access other functionality of the browser, including changing thezoom and/or relative layout size of a web page's display.

Returning now to FIG. 109B, if the user clicks on a hot zone of a buttonor menu item control, function 10980 causes functions 10981 and 10982 tobe performed.

Function 10981 changes the appearance of the button or menu itemappropriately. In the case of a button, the bitmap associated with thebutton is redrawn to indicate the button is being pressed. In the caseof a menu item, either a submenu will be display, or the display of themenu item will be removed, depending upon whether or not a finalselection has been made.

If a final selection has been made in the case of a menu item, or thebutton has been pressed and released, function 10982 sends the button'sor menu item's control ID and an indication that it has been selected upto the browser, which responds by causing the corresponding button ormenu item control object on the browser to act as if it had beenclicked.

If the user clicks on the hot zone associated with another type of thinclient control, function 10983 changes the appearance of the control'sbitmap on the thin client's display accordingly. For example, in thecase of a check box, a check would either be displayed or removed fromthe display of the control on screen. Then step 10985 stores thecorresponding state change in association with the control object. Asstated above, in the embodiment being described, the state of suchcontrol objects are not communicated to the browser until the browserrequests such information, in order to reduce communication demands.

If the user clicks on any other portion of the thin client's screen notassociated with the control interface of the thin client program or itscomputer, functions 10986 and 10987 send an event corresponding to thatclick up to the proxy browser along with the screen location at which itoccurred. As was described above with regard functions 10562 through10556 of FIG. 105B, the browser will transform the location of such aclick to the corresponding location on its virtual screen, and willrespond to such a click as if it occurred upon the screen the browserthinks it is drawing at the resolution of the virtual screen. In someembodiments, to further reduced communication demands, the thin clientwill only report such other clicks to the browser if it has reason tobelieve they corresponds to a user input the proxy's browser is supposedto respond to.

Referring now to FIG. 109C, if the thin client receives a query from theproxy browser asking the state of one or more control objects, function10988 causes function 10989 to query the state of the correspondingcontrols on the thin client, and function 10909 to transmit that stateinformation to the proxy browser. As was described above with regard tofunction 10518 of FIG. 105A, the proxy browser will then return suchrequested information to the part of the browser which requested it, asif that information were part of the current state of the correspondingcontrol objects associated with the virtual screen.

If the user of the thin client enters the command to scroll its screen,functions 10991 and 10992 upload that scroll command to the proxy. Thiscauses the functions 10520 through 10534 described above with regard toFIG. 105A to generate and download a new download stream for the displayof the current web page at the newly scrolled position.

If the user enters the command to change the zoom, i.e., scale, of theimage displayed on the thin client, functions 10993 and 10994 upload acorresponding zoom command to the proxy. This causes the functions 10536and 10552 described above with regard FIG. 105A to cause a new downloadstream to be downloaded to the thin client for display of the currentweb page at the new zoom setting.

If the user enters the command to change the virtual resolution of thethin client's display, that is to change the resolution at which thevirtual screen on the proxy browser is laid out, functions 10995 and10996 upload the selected virtual resolution to the proxy. This causesfunctions 10554 through 10560, described above with regard FIG. 105B, tohave the virtual screen re-laid out at the new resolution and acorresponding downloads stream to be sent to the thin client, so it candisplay the portion of the virtual screen corresponding to the window atthe current zoom setting upon the thin clients screen.

As indicated at the bottom of FIG. 109C, if the user enters anothercommand associated with the thin client's control graphical userinterface, function 10997 will cause a correspondingly appropriateresponse, indicated by the ellipses 10999 to be performed. Such otherfunctions can include the selection of bookmarks, the accessing ofbookmarked web pages, back and forward functions, or any other functionthat can be part of a browser's user interface. Such demands can beselected by use of physical buttons or other physical inputs on the thinclient computer, by the selection of graphical objects, such as buttons,menu item, or dialog box controls, or virtually any other knowngraphical user interface technique.

FIGS. 115 through 118 relate to an alternate method for enabling a thinclient computer to browse the web through a proxy server. In thisembodiment the entire layout 10206 of a web page created by the proxycomputer is downloaded to, and cached by, the thin client, as indicatedin FIG. 117. As will be described, this allows the thin client to scrollwithin the layout at substantially higher speeds, although it canincrease the total number of bits downloaded, since it attempts todownload the entire layout of, and all images for, each web page viewed.

FIG. 115 illustrates portions of the proxy browser's code 11500 that canbe used with such a page layout caching scheme.

In this embodiment of the invention if the proxy browser receives arequest for a web page from the thin client, functions 11502 causesfunctions 11504 through 11524 to be performed.

As indicated by the pseudocode associated with function 11502 in FIG.115, in this particular web caching embodiment the thin client canrequest a web page with a desired view setting for that page, includinga desired virtual resolution, zoom setting, and view window position.This is done to allow a user to associate such view settings with abookmark, including a particular URLs or a portions of a URL path name,so as to allow the user to automatically see such web pages at a desiredvirtual resolution, zoom setting, and view window position, withouthaving to separately enter such setting values each time the page isrequested. This, for example, would allow a user view commonly accessedweb pages with the display automatically zoomed in on a desired portionof that page using text of a desired size.

Once a request for a web page has been received from the thin client,function 11504 on the proxy browser requests that web page from theserver identified in the URL of the request from the thin client. Whenthe web page is received from the server function 11506 causes functions11507 through 11516 to be performed.

Function 11507 causes the layout engine of the browser on the proxy tolay out the received web page at the virtual screen resolutionassociated with the view setting specified in the web pages request.This layout is made using scaled string measurements for substitutedfonts, in a manner similar to that described above with regard tofunctions 10606 through 10618 of FIG. 106A. The scale factor used isdetermined by the view setting specified in request for the currentpage.

Function 11508 specifies a virtual screen position relative to theresulting layout that will include the view window implicit in the viewsetting of the current request. Thus for example, if the view settingrequests to see the rightmost portion of a 640 by 480 virtual screenresolution output, and the layout is forced to have a width of 800pixels, the virtual screen position would extend from approximatelypixel column 160 over to pixel column 800 in the layout.

Function 11518 causes functions 11520 to scale and subpixel-optimizeeach image 11702, illustrated schematically in FIG. 117, received inassociation with the web page being laid out.

Once all the images referenced in the web page have been received,scaled, and subpixel optimized, function 11522 causes function 11523 tocreate a display list for that layout, and to compress that display listand all its associated subpixel-optimized, scaled-down images. Thenfunction 11524 transmits that compressed data to the thin client in adownload stream that includes the web page's layout, followed by itsscaled-down, subpixel-optimized images.

If the user receives a request from a thin client to rescale andsubpixel-optimized one or more images previously downloaded at adifferent scale, function 11526 through 11532, rescale andsubpixel-optimize, compress, and download such images to the thinclient. This allows the user to view the web page at a differentsubpixel optimized size if he or she seeks to view the downloaded webpage layout at a different zoom setting.

If a screen input's event is received from the thin client function11534 causes functions 11536 through 11542 to be performed.

Function 11536 tests to see if the page layout coordinates associatedwith the command corresponds to a portion 10206A of the web page layout10206 currently mapped to the proxy browser's virtual screen 10208,shown in FIG. 117. If not, function 11538 scrolls the virtual screen toa new portion 10206B of the layout that includes the layout coordinatesassociated with the command.

Function 11540 calculates the virtual screen coordinate corresponding tothe page layout coordinate of the received screen event. Then function11542 places the input screen event with its virtual screen coordinatesin the browser's event queue, so that it can respond to that event, suchas the clicking of a link, as if the user had clicked at itscorresponding virtual screen coordinate on the virtual screen itself.

FIG. 116 is a highly simplified pseudocode description of portions ofthe thin client code that can be used to support the page layout cachingscheme illustrated in FIGS. 115 and 117.

If the thin client starts to receive a download stream containing a pagelayout's display list, function 11602 causes function 11604 and 11606 tobe performed.

Function 11604 sets the mapping of the view window (such as the viewwindow 10210A shown in FIG. 117) relative to the page layout, and thencalculates the current display scale factor based on that mapping.

Function 11620 displays any portion of the downloaded page layout thatfalls within the current view window, using the current scale factor.This process includes the functions 11622 through 11630.

Function 11622 displays each string element that occurs within thecurrent view window with font sizes that are a function of the currentscale factor. When it does so it adjusts, if necessary, for anydisproportionate changes in the relative size of characters that mightresult from the uneven effects of font hinting as the pixel size atwhich such characters are displayed changes. It does this by usingtechniques for compensating for the discontinuities anddisproportionalities, such as changing spacing between characters,similar to those that have traditionally used to provide a WYSIWYGcorrespondence between the display of text on a computer screen and itsappearance when printed at a much higher resolution. If font bitmapshaving a different size that than previously displayed are required,font bitmaps for such differently sized characters can be eitheraccessed from storage on the thin client, accessed from a network fontserver, or rasterized at the needed size from a font outline.

If the display created by function 11620 is at a different scale factorthan that for which the bitmap images 10818 have been scaled-down,function 11624 causes functions 11626 through 11630 to be performed.These request the proxy server to rescale at the new scale factor andsubpixel-optimize all images that are totally or partially within theview window. Then the bitmaps of the same images are locally rescaledfrom the formerly downscaled and subpixel-optimized images 10818 storedon the thin client and displayed on the thin client screen to provide atemporary representation for such images. Then, when the requestedimages that have been rescaled from the original, higher resolutionbitmaps associated with the web page have been received by the thinclient from the proxy server, they are drawn at the appropriate locationon the display screen.

In some embodiments, when a user changes the zoom of the display, thebitmaps of any images corresponding to a portion of the page on thescreen at the new scale factor are displayed with a quick, but cruderepresentation of the image generated on the thin client to provide theuser a temporary representation of such images to be used until theproperly subpixel-optimized versions of the images have been downloaded.Such quick representations are relatively simple to generate when thenew scale factor is an integral ratio of the scale factor of thepreviously downloaded bitmaps. When this is not the case, the temporaryrepresentation could be produced in any of a number of ways. Theseinclude displaying them as images having integral scaling ratio thathave been either cropped or scaled to an integral ratio smaller than theproper scale so to not take up more space than the properly scaledimages that are intended to over draw them.

If the user generates a screen input to be sent to the proxy browser,function 11632 through 11636 transform the thin client screencoordinates of the input to a corresponding page layout coordinate. Thenthe screen input and corresponding page layout coordinate are uploadedto the proxy browser. The proxy browser then responds to such an inputusing the functions 11534 through 11542 described above with regard FIG.115. This causes the proxy browser to respond to such screen input as ifthe user had clicked on a corresponding portion of the web page on theproxy browser's virtual screen.

Caching schemes, such as that just described with regard FIGS. 115through 117, that allow the thin client to store more than the portionof a web page currently displayed on a screen, can be used to allow auser to scroll and/or zoom more rapidly relative to web page's content.This is particularly true if the thin client has a relatively lowbandwidth to its proxy server.

The embodiment of such a caching scheme that has just been describedoperates relatively well even with bandwidths as low as those associatedwith current digital cellular communication rates commonly available atthe time of this application. This is because all the content, exceptimages, included in most web pages can normally be compressed to fitinto 3,000 bytes or less. Thus, at commonly available current digitalcellular communication rates, the entire text portion of most web pagescould be downloaded in several seconds, and the initial portions of itcould be drawn in even less time. Of course the downloading of theimages might take more time, but all but large images at the start ofthe web page would commonly be displayed within a few seconds. And withfaster communication links this delay can be reduced tremendously.

FIGS. 118 through 120 illustrate aspects of the invention that can beused in virtually any Web browsing environment, but which areparticularly useful when browsing the Web on small screens. Thisincludes use on small screen devices such as the thin client computersdiscussed above. Because these aspects of the invention involve a zoominto or out of a selected portion of a web page, they can be made towork quickly on such thin client computers by use of a layout cachingscheme of the type just described.

FIG. 118 shows the view of a standard web page that has been laid out ata virtual resolution of 640 by 480 and then downscaled andsubpixel-optimized for display on a 320 by 240 screen. Such content isreadable by those with good eyes at the distance at which most peoplecommonly use handheld computers. However the content of most Web pagescan be made even easier to read if it is displayed at a larger size.Since most Web content is laid out in a plurality of columns, it wouldoften be desirable to be able to quickly zoom a display to the top of acolumn at which a user would like to start reading. In the interfaceshown in FIGS. 119 and 120 a user can do this by dragging the pointingdevice 11902 across the desired text column at a vertical position thatthe user would like displayed near the top of the display screen in thezoomed view. When the display is in the mode to perform this type ofzoom, a horizontal linear drag of the type shown in FIG. 119 will causethe display to scale the width of the web page layout indicated by thedrag to fit the width of the screen. In the example shown in FIG. 119this user input would cause the display to be zoomed as shown in FIG.120.

Preferably the user interface also allows a user to drag a selection boxaround an area in the web page layout shown on the screen, and thesystem will zoom the display of the web page so that the selected areain the web page fits the screen.

It is also preferred that in such drags the user be allowed to drag thepointing device across a boundary associated with an edge of the screen,and if this is done the portion of the web page shown on the screen willscroll in response, to allow the user to select to perform a zoom to fitto a width, height, or area within the web page layout that is too largeor improperly positioned to fit totally within the screen as the startof such a drag. If such a drag selects a portion of the layout too largeto fit on the screen at the scale factor displayed during the drag, itwould change the scale factor so as to decrease the size at which textand images were displayed.

When we say that a selected width, height, or area in the layout isscaled to fit the screen, we mean that it is scaled to have its largestdimension ranges between two thirds and the full correspondingdimensions of the screen. Normally it would be preferred that suchscaling make the selected length or area have a largest dimension thatranges from eighty or ninety percent to the full corresponding dimensionof the screen.

FIGS. 121 to 128 illustrate a feature of the invention calledzoom-click. This feature allows a user to more easily and accuratelyselect items within a screen that is seen with a low resolution, whichis very small, or which is being used with a pointing device that cannot be easily positioned with accuracy relative to desired locations ona screen. This is particularly useful with dealing with cellphone sizedscreens, with touch screen devices using fingers as a pointing device,and/or for touch screen devices used in an environment such as a movingcar in which it is difficult to accurately place the pointing device.

In zoom click when the user clicks down at a given location in a screen,the portion of the screen upon which he or she has clicked is shown atan expanded scale. The user is then free to navigate in this expandedrepresentation with the pointing device held down until the pointingdevice is in the desired location. At this point the user can stoppressing down, and release the pointing device, causing the currentlocation at the time of the release to be treated as the selectedlocation for purposes corresponding to a traditional graphical userinterface click.

With zoom click double clicks can be represented in different ways. Oneof the easiest is merely to record a quick secondary click and releaseshortly following a zoom click and near the same location as the zoomclick as converting the zoom click into a double-click.

In preferred embodiments of the invention where a user can move thecursor without a down click, such as with most non-touch screen pointingdevice, the pointer movement in the enlarged view during the down clickin a zoom click to occur at the same rate as normal pointer navigation.This means that a user will have approximately twice the pointingresolution as he otherwise would.

It is also preferred that when a user gets to the edge of the screenwhile moving the pointer during a sustained down click in zoom clickmode the image will scroll to enable the user to navigate the entirepage in this mode.

In the example of FIGS. 121 through 128, a clamshell cellphones/computer120C is shown. In this example, it is assumed that the cellphones has a320 by 240 whole pixel resolution and color subpixel addressability. Ofcourse in other embodiments of the invention other resolutions could beused. For ease of use, the cellphone is assumed to have a touchsensitive screen that can be operated by a user's finger.

FIG. 121 shows the cellphones with the same image of the priceline.comWeb page shown in FIGS. 11 and 110.

FIG. 122 shows what happens when, while in zoom-click mode, the usertries to press his or her finger 12102 down upon the screen to selectthe same text entry field 11000 discussed above with regard FIG. 110. Itis often difficult to estimate in advance the exact location at which acursor will be placed when one touches one's finger to a touchscreen.Zoom click helps with this, since it allows the user to see the positionof the cursor 170 that results from a finger touching the touch screenbefore any selection is made. It also shows the screen at a larger viewscale to make it easier for the user to position the cursor 12204 on thedesired link or control, such the desired text entry field 11000 shownin FIG. 123. Once the user removes his finger from the touchscreen, asshown in FIG. 124, the popup keyboard 11102 appears, just as it did inFIG. 111, described above.

As shown in FIG. 125, when the user, while in zoom click mode, tries totouch a desired letter in the pop-up keyboard 11102, in this case theletter “b,” the image of the portion of the keyboard touched increasesits scale. In the example shown in FIG. 125 the user has not exactlyposition the cursor 12204 at the desired location at the time of hisinitial pressing of the touchscreen. The user can easily correct thisproblem in zoom-click mode by dragging his finger 12202 to position thecursor 11102 at the location shown in FIG. 126. If the user then removeshis finger from the screen, the screens image will revert to its normalscale, which enables the entire pop-up keyboard 11102 to be shown toallow rapid selection of the next character, no matter where it mightlie within the keyboard.

As shown in FIG. 127, the letter “b” selected in FIG. 126 is shown ashaving been entered in the pop-up keyboard's text entry field 11104.

If the user continues selecting characters by the process shown in FIGS.125 through 127 he or she will be able to enter an entire string of textfollowed by the selection of the enter key that will cause the desiredtext to be entered at the desired location in the web page, as indicatedby FIG. 128.

In many embodiments of this aspect of the invention, the zooms used inzoom click involve expanding the bitmap previously shown on all or partof the screen by an integral ratio, such as 2× or 3×. This allows suchzooming to be performed virtually instantaneously, even by relativelylow powered processors, making zoom click a very rapid user interface.

FIGS. 129 through 137 illustrate an aspect of the invention that enablesa user of a Web browser to select a portion of text from a web page tobe the re-flowed, or re-laid out, across line boundaries at asubstantially larger scale factor. Such re-flowing of text isparticularly useful on displays having small screens, since it allowsselected Web text to be displayed with much larger fonts, while at thesame time allowing entire lines of such text to fit within such screens.This enables such lines to be read quickly, without the need torepeatedly horizontally scroll back and forth to read successive linesof such text.

Regardless of how high the resolution of a small screen display is, thehuman eye can only see what it displays at a relatively large resolutionif the display is held relatively close. This aspect of the inventionenables Web text to be display wrapped across lines that fit within thewidth of a display at a relatively large scale factor. For example, itallows the user of a handheld computer with a four inch diagonal screento display text at a sufficiently large scale to be seen by a group ofpeople who are standing five or six feet away. Similarly it would allowa user to view text on cellphone or wristwatch sized display withouthaving to hold them close to his or her face. It can also be used withnormal sized computer display screens to display Web text to people whoare at a relatively large distance from the screen, or who are visuallyimpaired.

FIG. 129 provides a highly simplified pseudocode description ofprogramming 12900 that could be used by a client computer to redisplayWeb text according to this aspect of the invention.

It should be understood that this aspect of the invention is not limitedto use on client computers. In fact, with modification this aspect ofthe invention can be used in viewing visual output generated byapplications other than Web browsers, such as in systems of the typedescribed below with regard FIGS. 140 and 141.

Many web pages are designed to have their text laid out in differentcolumns, that is, in different horizontal positions relative to such alayout. A web page can indicate such different desired horizontaldisplacements in multiple different ways, including the use of tablesand frames. It is preferred that system used with the method is capableof displaying a web pages text in such a multicolumn layout thatreflects such indications of different desired horizontal displacements.

If the user selects an area of a web page layout for text re-flow in asingle column at a new scale factor, function 12902 causes function12904 through 12908 to be performed.

In some embodiments of the invention such a selection is made bydragging a pointing device, such as the stylus 11902 shown in FIG. 130across the portion of the width of a web page that the user desires tohave re-flowed at a larger scale across the width of a display screen orwindow. This is similar to what was discussed above with regard to FIG.119, except that the method currently being discussed allows text to bere-flowed across line boundaries, letting a selected column of text bedisplayed with much larger fonts while at the same time allowing wholelines of such text fit within the screen.

Function 12904 of FIG. 129 selects all strings and correspondingunderlining (i.e., labeling of text as being a link) in the layout ofthe current web page that are substantially within the selected layoutarea.

FIG. 131 illustrates the top portion of the layout 10206A, similar tothat shown in the bottom half of FIG. 117, of the web page shown in FIG.130. In FIG. 131 the dashed rectangle 13102 represent the portion of theweb page's layout corresponding to the column selected by the user inFIG. 130.

In some embodiments of the invention, a string will be considered to bewithin the selected area only if a substantial portion, such astwo-thirds or three-quarters of its length fits within the area selectedby the user. For example, in FIG. 130, the user intended to select thetext at the right hand portion of the screen displayed in that figure.However, in the example of FIG. 130 the user failed to exactly selectthe width of that intended column with the drag of the stylus.Nevertheless, because function 12904 selects all strings that aresubstantially within the selected area, the text re-flow will operate asif the user had selected exactly the intended column.

FIG. 132 illustrates an initial portion of the strings in the layout ofthe web page shown in FIG. 131 that falls within the user selected area.In this figure, underlining indicates portions of text that correspondto links.

Once all of the strings in the selected area have been selected,function 12906 labels any groups of one or more successive strings whosecloseness in the layout or other characteristics indicate they are partof the same paragraph. This is indicated in FIG. 132 by the paragraphbrackets 13202.

As indicated in FIG. 132, this method might not detect all groupings ofcharacters that are paragraphs, but it does detect many of them withoutthe need to reference the HTML corresponding to the text. In theembodiment of the invention being described, such HTML is stored on theproxy server, meaning that such an access would require the delayassociated with communication between the client computer and a proxyserver. In other embodiments, particularly those in which the clientcomputer has a full browser resident upon it, or those having a highaccess bandwidth link to a proxy server, access to the HTML code couldbe used to more accurately determine how the selected strings should begrouped in paragraphs. In other embodiments, the layout informationdownloaded to a proxy server could contain any information aboutparagraph boundaries contained within a web pages HTML.

Once the selected strings have been grouped into paragraphs, function12908 re-flows the text of each paragraph using the selected expandedscale factor across the width of the display screen (or display windowif the image is being shown on less than an entire display screen).

This text re-flow process is illustrated in FIG. 133, in which thestrings in the top portion of FIG. 132 are laid out at a new scalefactor. In the example being shown, the text of FIG. 130 has beenselected to be re-flowed at twice its original size within the samescreen. Preferably the user interface of the thin client allows the userto select a plurality of different scale factors for use with theselected-text-reflow function, ranging from rather modest to ratherextreme increases in font size.

In FIG. 133 underlining is used to represent something different than itdoes in FIG. 132. In FIG. 133 the text on each line that came from acommon layout string in FIG. 132 is shown with continuous underlining.Underlining gaps between portions of text on the same line in FIG. 133that come from different strings in FIGS. 132 are exaggerated to maketheir difference more readily visible. In FIG. 133 all of the individualstrings from the original layout shown in FIG. 132 that have beenwrapped across a line boundary are indicated by a arrow from theirportion on one line to their following portion on the next line.

FIG. 134 provides a schematic illustration of how the selected stringsof the original layout shown in FIGS. 130 and 131 look once they havebeen re-flowed at approximate twice the size on the thin client'sscreen. As can be seen by looking at FIGS. 134, such a text re-flowmakes Web text much easier to view from a distance. Re-flowing the sametext at 4× or 6× instead of 2× would make it possible to show the sameweb content to people at quite a distance from the display screen.

FIGS. 135 through 137 illustrate another method that can allow a user toselect a portion of text to be reflowed.

FIG. 135 illustrates a portion of a web page having a central column oftext that has intruded into it one or more portions of other text.

FIG. 136 illustrates how the user obtained a zoomed out view of theentire web page's layout. In many actual embodiments, text greekingwould be used to indicate portions of text too small to be representedin such zoom-out views as individual characters. Such a zoomed-out viewcould be generated quickly on thin client computers such as thosedescribed above with regard FIGS. 115 through 117 in which a web page'sentire layout was stored on the thin client, itself.

In FIG. 136 the user has selected a mode that allows her or him todefine a polygon shaped area upon the zoomed-out web page view byclicking the display of the web page at corners in such an area. Oncethis is been done, the selected area will be used by the function 12904shown in FIG. 129 to select which text is to be re-flowed.

FIG. 137 illustrates how the selected text will appear once it has beenre-flowed and displayed.

FIGS. 138 and 139 provides more description of the font server 230described above with regard FIG. 2.

FIG. 138 corresponds to FIG. 2, except that in it there are a pluralityof the client browsers 200, each of which accesses content from one ormore servers 220 through the same proxy server 210 and each of whichaccesses fonts from the same font server 230.

This is because the software sold, licensed, or distributed for use ineach of the thin client browsers has been programmed to seek fonts suchclients do not have from the same font server 230 and to make Webrequests through the same proxy server 210. Of course, in otherembodiments of this aspect of the invention the thin clients could beprogrammed to select which of a common plurality of proxy servers to usebased on such factors as their geographic location, or their Internetservice provider. Similar considerations could be used by the thinclients to select from which of a common plurality of font servers theyare to request and receive fonts.

FIG. 139 provides a highly simplified pseudocode description ofprogramming 13900 that can be used on a font server of the typeillustrated in FIG. 138. This font server could also be used by normalbrowser computers, as well as by computers running applications otherthan Web browsers.

If the font server receives an HTTP request from a computer for acharacter of a particular font, function 13902 causes steps 13904through 13922 to be performed.

The particular embodiment of font server code shown in FIG. 139 isdesigned for use with a protocol that specify each character desired forparticular font at a particular size with a separate HTTP request. Itspecifies the desired font, font size, and character as part of a URLpathname. Of course, in other embodiments font servers could allow HTTPrequests to specify more than one font, and could specify fonts otherthan with URL pathnames.

In systems that request each character-font shapes separately, it ispreferable that the HTTP protocol 1.1 or later be used, since it allowsmultiple HTTP request to be handled by a server from a given clientcomputer without having to open and close a separate connection for thehandling of each such request.

In the embodiment of the invention shown in FIG. 139, if the font serverdetermines that it currently has stored a font bitmap corresponding tothe URL pathname specified in the request, function 13904 causesfunction 13906 to send that font in an HTTP response to the networkaddress from which the URL request came, and then function 13908 chargesan account associated with the transaction. Such a downloaded font couldbe either a font bitmap or a font outline description.

Such a charging of an account is not used in all embodiments of theinvention. In some of those in which it is used, the account charged isone associated with the computer to which the font is sent. In otherembodiments, the charge is to an account of a party associated with theweb page that included a specification for such fonts. In yet otherembodiments, the charge is to an account associated with a proxy serverof the type described above, or to a user of the services of such aproxy server.

If the requested font is not in the font server's storage and it is abitmap for which the font server has a corresponding outline font,function 13910 causes function 13,912 through 13,922 to be performed.

Function 13912 generates a font bitmap having the attributes, such assize and possible transformation, indicated by the font pathname of theHTTP request. This function includes determining if the requested font'spathname indicated that a subpixel-optimized version of the font isdesired. If so, function 13914 and 13916 generate a subpixel-optimizedversion of the font, preferably using the non-linear color balancingmethod described above with regard FIGS. 55 through 96.

Once the font bitmap has been created, function 13918 sends the bitmapover the network in an HTTP response to the requesting address. Function13920 caches the font bitmap at an address corresponding to the pathnamespecified in the request. Function 13922 charges an account associatedwith the transaction, as discussed above with regard to function 13910,in embodiments where such charging is performed.

FIG. 140 illustrate that certain aspects of present invention can beused to enable a thin client computer 200 to display digital contentcorresponding to the text and the images generated as screen output byone or more applications running on upon a remote computer 14000. Suchapplications can include Web browsers, spreadsheets, word processors,database programs, or virtually any other type of software capable ofgenerating screen displays.

The remote computer includes remote screen generator programming 14006,which includes hooks in the dispatch table 14008 of the remotecomputer's operating system 14004. These hooks intercept calls made byone or more of the applications 14002 to the operating system to drawtext, shapes, lines, control objects, and bitmap's to a screen at agiven display resolution. In some embodiments, such draw commands willactually cause content to be displayed on a screen associated with aremote computer, in others there will be no screen at the remotecomputer, and thus such draw commands will be made to a virtual screen.In the text that follows, for purposes of simplicity, I will refer tothe video space to which these application thinks they are displayinggraphic output and receiving user input on a given client computer as avirtual screen.

When one of the applications 14002 request the operating system to drawa display element, that call is intercepted by one of the hooks in theoperating system's dispatch table, so as to make a corresponding call toa corresponding routine 14010 of the remote screen generator. In amanner similar to that described above with regard to FIGS. 102 and 106Athrough 106C, this causes a download display list 10212A to be createdthat is substantially similar to the display list 10212 described abovewith regard to FIG. 102 and the figures that follow it. A zoom, scroll,and virtual layout control 1412, corresponding to the controls 10214through 10218 shown in FIG. 102, controls the mapping of the thinclient's view window into the virtual screen and, thus, the displayscale factor at which the elements drawn by an application into thevirtual screen are drawn and positioned in the download display last10212A. Preferably this includes subpixel optimization of image bitmaps,and font substitutions of the type described above with regard to FIGS.106A through 106C.

Once the download display list has been created for a given virtualscreen, it is compressed and downloaded to the corresponding clientcomputer, which then draws it upon its screen in much the mannerdescribed above with regard to FIGS. 109A through 109C.

In some embodiments of the invention, individual draws to the virtualscreen will have corresponding draw commands downloaded to the thinclient. This, can be used to speed the rate at which minor changes tothe thin clients screen can be made in response to corresponding changesto the virtual screen.

In the embodiment shown in FIG. 140, user input associated with screenlocations are uploaded to the remote computer from the thin client, andthey have their screen coordinates transformed to reflect the mappingbetween the thin clients view window and virtual screen. Once this isdone such events are placed in the event queue 14014 of the remotecomputers operating system with their transformed screen coordinates sothe associated application 14002 will respond to that event as if it hadbeen entered upon the remote computer's corresponding virtual screen.

Many of the techniques used by screen sharing applications, such asLapLink, sold by LapLink, Inc., 18912 North Creek Parkway, Suite 100,Bothell, Wash., U.S. Pat. No. 98011, or pcAnywhere, SymantecCorporation, 20330 Stevens Creek Blvd., Cupertino, Calif. 95014, can beused in conjunction with an embodiment of the invention of the typeshown in FIG. 140. In fact, when the remote computer in that figure hasits own screen, the embodiment shown in FIG. 140 can be used to performscreen sharing between the client computer and the remote computer.

It should be appreciated that in embodiments in which the clientcomputer has a reasonable amount of a computational power, the clientand the remote computers can operate in a peer-to-peer manner. Theremote computer can be a dedicated application server computer or it canbe any other type of computer, such as a personal computer, including adesktop computers, laptop computers, or tablet computers.

FIG. 141 illustrate an embodiment of the invention that is somewhatsimilar to that shown in FIG. 140, in that it uses hooks into thedispatch table 14008 of a computer's operating system 14004 to interceptoperating system calls made by one or more applications 14002 in orderto cause the screen displays generated by such applications to bescaled-down and/or subpixel-optimized according to aspects of theinvention described above. It is different from the client-serverembodiment shown in FIG. 140, in that it is designed to run on onecomputer system 14100, shown in FIG. 141.

In the embodiment shown in FIG. 141, when an application makes a call tothe operating system to draw an element to a screen, the hooks placed inthe OS dispatch table 14008 cause a corresponding draw routine withinthe programming 14010 of a scaled subpixel-optimized screen generatorprogram 14006A to be evoked. This substitute draw routine draws acorresponding element to a virtual screen display list 10206B. It alsocauses any portions of such screen elements drawn into the part of thevirtual screen that fits within a view window 10210C to be immediatelydisplayed on the display screen 10220A of the computer 14100 by means ofcalling draw commands in the operating system, or by directly drawing tothat screen themselves.

When an application program calls the operating system for a measurestring commands, that commands is likewise intercepted so the callreturns font metrics for a substituted font size in the manner describedabove with regard to functions 10608 through 10618 of FIG. 106A.

A screen event input into the computer's screen is taken from theoperating system's event queue and passed to an event position scaler,which transforms the screen coordinates at which such an event wasgenerated on the screen into a corresponding position in the virtualscreen's layout represented by the display list, using the mapping ofthe view window into that virtual screen to control such atransformation. Once the coordinates of the event have beenappropriately transformed, the event is returned to the operating systemevent queue so the operating system will respond to the event as if ithave been entered onto the virtual screen.

An embodiment of the invention of the type shown in FIG. 141 would allowa user of a computer to subpixel-optimizize, scaled-down, zoom, andperform selected text reflow upon screens generated by standard computerapplications 14002, even if they have not been designed to support suchfunctions.

In other embodiments of the invention not shown, the operating system ofa computer can be modified to include functionality of the type shown inthe scaled, subpixel-optimized screen generator 14006A shown in FIG.141. In yet other embodiments of the invention, application programs14002, including browser programs, can be modified to support all ormuch of such functionality directly.

FIG. 142 illustrates how the embodiment of the invention shown in FIGS.102 and 140 can be used to allow thin client computers, such as the thinclient computers 200A through 200D shown in that figure, to be used toaccess Internet content or application programs over wireless network.

In this figure the computers 200A through 200D correspond to the thinclient computer 200 shown in FIGS. 102 and 140. The computer 200A is ahandheld computer. The thin client computer 200B is a cellphone. Thethin client computer 200C is a wristwatch computer. The thin clientcomputer 200D is a headmounted computer, or headmounted display for aportable computer. Each of these client computers can have a subpixeladdressable display.

At the time of the filing of this application it is currently possibleto manufacture screens for each of these types of devices havingresolutions high enough for use by most aspects of the presentinventions. For example, at the current time it is possible tomanufacture a 320×240 color LCD display with a diagonal measurement of 2inches or less. Organic LED devices can currently be manufactured witheven higher resolutions. In the near future, the cost of such smallscreens should come down, and their availability and resolution shouldgo up.

All of the thin client computers shown in FIG. 142 have wirelesstransceivers that enable them to transmit and received information ofthe type described above with a remote proxy server computer 210 of thetype shown n FIG. 102 or a remote application server 14000 of the typeshown above with regard FIG. 140. Such transceivers can be wireless LANtransceivers for communicating with a wireless LAN transceiver 14204 ordigital cellular wireless transceivers for communicating with a wirelessInternet transceiver 14202, or preferably a transceiver that has beendesigned to communicate with both types of wireless transceivers. Inother embodiments, other types of wireless communication, such asBluetooth or infrared communication, can be used.

The remote computers 14000AA through 14000AC shown in FIG. 142correspond to the remote server computer 14000 shown in FIG. 140.

The remote application server computers 14000AA shown in FIG. 142represent laptop, desktop, server or other types of computers that canbe programmed to operate as a remote application server computer 14000.The subpixel-optimized application server 14000AB is a remote computerof the general type illustrated in FIG. 140 that is designed to runapplications for a plurality of thin client computers connected to a LANor WAN associated with such clients. The remote computers 14000AA and14000AB can communicate with thin clients over a private local areawireless transmitter 14204, or can communicate with them over thewireless Internet as indicated by the numerals 10222 and 14202.

The subpixel-optimized application server 14000AC is an applicationserver similar to server 14000AB, except that it is connected directlyto the internet to allow multiple thin client computers 200 to useapplications over the Internet by means of the wireless transmissionnetwork indicated by the numeral 14202.

In FIG. 142 a proxy server 210, of the type described above with regardto FIG. 102, is shown connected to the LAN or WAN 14204. This, forexample might be a proxy server intended to handle Web browsing that theCorporation wishes to keep off the Internet. It should be understoodthat other such proxy servers, such as those operated by companiesproviding commercial proxy serving services, would normally be connecteddirectly to the Internet 10222 shown in FIG. 142 as well.

The system illustrated in regard FIG. 142 allows small computers thatcan be conveniently carried at virtually all times to access and displayweb pages and the output of most application programs. At the time offiling this application, the bandwidth of relatively inexpensivewireless LAN transceivers, such as the LAN transceiver 14204 shown inFIG. 142, is fast enough to allow thin clients of the type shown in FIG.142 to view web content or the output of application programs almost israpidly as one could view such digital content on a desktop computerconnected to a cable modem. And this is on a machine that can be carriedone's pocket, or on one's wrist, or as part of one's glasses, and thatcan be capable of accessing such media within several seconds afterbeing turned on.

At the digital cellular bandwidth commonly available in America at thetime of filing this application, it will normally take several secondsto download the entire text of the most web pages, and longer todownload the web page's images. Of course many embodiments of thepresent invention start to display text as soon as part of it isreceived, allowing the user starts to start seeing part of a downloadedpage very quickly.

As of this filing new, higher speed, digital cellular systems have beendeveloped that are capable of providing bandwidths in the range ofhundreds of thousands or millions of bits per second. Once such higherspeed systems become commonly deployed, users of the invention will beable to read and interact with web pages and application screen onsmall, portable devices, that can be used within seconds of being turnedon most places they travel, with almost as much speed and convenience asif accessing them on a desktop or laptop through a DSL or cable modemconnection.

FIGS. 143 and 144 provide two views of a handheld computer 200A capableof functioning as a thin client for either proxy servers of the typedescribed above with regard to FIG. 102 or a remote application servercomputer of the type described with regard to FIG. 140.

In FIG. 143, the computer is shown in the portrait orientation in whichit has been designed for use. The native operating system on thecomputer is designed to draw fonts and graphical user interface elementsin this portrait orientation. This is the manner in which many of thehandheld computers sold at the time of the filing of this applicationhave been designed and built. For example, there are multiple suchhandheld computers on the market today that have subpixel addressablescreens with a 240×320 whole pixel resolution. Many of these computersalso have subpixel striping that runs in a horizontal direction when thedisplays are in their intended portrait orientation.

Unfortunately, such a portrait orientation does not provide the type oflandscape aspect ratio with which most people are used to usingcomputers, and for which most web pages have been designed. Furthermore,in the case where such computers have horizontal subpixel striping, suchstriping provide all of its potential increase in subpixel resolution inthe vertical direction. Unfortunately, the display of text tends tobenefit substantially more from an increase in horizontal resolutionthan it does from such an increase in vertical resolution.

For all these reasons, many embodiments of the invention that use suchportrait-orientation machines are designed to use them when they havebeen rotated by 90 degrees, as shown in FIG. 144, so they will have alandscape aspect ratio more like that of the layout of most computerscreens, and so that their subpixels will provide an increase inhorizontal resolution that is most useful for displaying text.

FIG. 145 is a highly simplified pseudocode representation of how someaspects of the present embodiments can be used to respond to requests todraw basic shapes—such as rectangles, ovals, lines, and curves—usingsubpixel optimization. Such functionality can be used in applications ofmany different types, in operating systems, and in thin client software.

In the example of FIG. 145, the pseudocode shown relates to a rectangledraw function 14500, that could, among other uses, be used in place ofthe rectangle command 10918 described above with regard FIG. 109A. Sucha routine is evoked by a call to draw a rectangle that has its position,width, and/or height defined at higher resolution than the whole pixelresolution of a subpixel addressable screen on which is to be shown. Inresponse, the function 14502 uses a subpixel-optimization routine torender the image of the rectangle defined at such a higher resolution,at subpixel resolution. This can be done using virtually any subpixeloptimization scheme, but for monochrome rectangles a bicoloroptimization scheme, such as that described above will tend to providethe highest perceived spatial resolution.

FIG. 146 is a highly simplified pseudocode representation 14600 of code14602 that operates on a server and/or proxy computer and code 14604that can be run on a client computer, including a thin client computer,to allow applets downloaded from the server to draw subpixel-optimizedscreen elements on the screen of the client.

In such an embodiment, a function 14606 of the client requests mediafrom the server. The server responds in function 14608 by downloadingmedia, or data, including one or more applet programs that can run onthe client computer. In function 14610 the client computer receives themedia including the applets, and function 14612 loads and runs theapplets. In function 14614 the applets draw subpixel-optimized elementsto the subpixel addressable screen on the client computer.

The applets can draw subpixel-optimized elements either by copying orgenerating subpixel-optimized bitmaps, by rendering text withsubpixel-optimized fonts, or by drawing subpixel optimize shapes, suchas the shapes of vector defined graphics or relatively simple geometricshapes, such as lines, rectangles, and ovals.

FIGS. 147 and 148 illustrate how subpixel optimization can be applied torollover images and GIFF animations, respectively.

In the subpixel optimization routine 14700 shown in FIG. 147, both anon-rollover image 14702, which is to be displayed when a pointingdevice is not detectably over the portion of the screen associated withthe images, and a rollover image 14704, which is displayed when thepointing device is detectably over that screen portion, are bothdownscaled and subpixel-optimized by a function 14706. This produces ascaled subpixel-optimized non-rollover image 14708 and a scaledsubpixel-optimized rollover image 14710. Then a function 14712 is usedto select which of these two subpixel-optimized images is displayedbased on whether the pointer is detectably over their associated screenarea or not. This makes the two subpixel-optimized images act as acombined “rollover” graphic.

In other embodiments of this aspect of the invention, a similartechnique could be applied to two images that are associated with abutton, one displayed when the button is not being pressed, and anotherdisplayed when the button is pressed.

The method 14800 shown in FIG. 148 is similar to that described abovewith regard FIG. 147. It takes each separate image 14802 through 148906of a GIFF animations and subpixel-optimizes it in a function 14808 toproduce a corresponding set of scaled-down, subpixel-optimized GIFFanimations images. Then function 14816 displays the subpixel-optimizedimages in substantially the same manner that non-subpixel-optimized GIFFanimations are displayed.

The subpixel optimizations described with regard to FIGS. 147 and 148can be used with other aspects of the invention described above,including in the accessing of web pages on a subpixel addressablescreen, including those on thin client computers.

FIG. 149 illustrates a method 14900 for subpixel optimizing 3-Danimation. This method includes performing a set of functions 14904through 14908 for each successive frame of the animation.

Function 14904 runs a 3-D animation engine to create a bitmap of thecurrent frame, or at least of those portions of the image that havechanged since the last frame. This function generates such bitmaps at aresolution higher than the whole-pixel resolution at which thesubpixel-optimized version of such bitmaps are to be displayed.

Function 14906 then uses techniques, such as those described above, forscaling down and subpixel optimizing the frame bitmap, or at leastchanges made in the frame bitmap since the last frame.

Next, function 14908 displays the scaled-down, subpixel-optimized imageof the frame bitmap, or at least of the changed portion of the frame, ona subpixel addressable screen.

The method shown in FIG. 149 can be particular useful to allow people toplay games, and see the images produced by such games at the higherresolution made possible by subpixel optimization. It can be used forsuch purpose on small screen, handheld devices. It can be used both withclient computers displaying animated images generated on a remotecomputer, as well as with computers that are generating such animatedimages locally.

FIGS. 150 and 151 illustrates one way in which the method of FIG. 149can be used in a client server gaming application.

FIG. 150 illustrates programming 15000 on a game server computer used insuch an embodiment. As indicated by the numeral 15002 and 15004, if thegame server receives user input from one or more game client computersit sends input to the game engine. If such input is screen input, it isscaled appropriately to compensate for the difference between the user'sscreen resolution and the space that the game engine associates withscreen inputs.

In function 15006 the game engine computer computes a display list forthe current frame, or for any changes associated with the current frameto a prior display list. Then function 15008 has a 3-D rendering programrender a frame bitmap corresponding to the display list generated forthe current frame, or render the changes required to the bitmap of thecurrent frame. Such bitmaps are generated at a higher resolution thanthat of the subpixel-optimized images that are to be created by thefunction 15010.

If the client is generating different screen images for differentclients, the function 15008 would be performed separately for each ofthose separate views.

Next function 15010 scales down and subpixel optimizes the current framebitmap or the bitmaps of current changes to the frame. When the functionis scaling down only bitmaps of such changes it also correspondinglyscales down the screen positions associated with those changes.

Next function 15012 compresses the subpixel-optimized bitmaps, and ifappropriate, their locations, and function 15014 downloads thecompressed, scaled, subpixel-optimized images and any such locations tothe client for display.

FIG. 151 illustrates programming 15100 on a game client designed for usewith a programming of FIG. 150.

Function 15101 receives downloaded images, then function 15102decompresses them. Next function 15104 displays the scaled,subpixel-optimized animation frame bitmaps, or it displays bitmap ofchanges over the image of the prior animation screen at the locationsindicated for those changes. This is done on a subpixel addressabledisplay.

As indicated by numeral 15106 and 15108, when the client receives userinput, it uploads that input to the game server with any screencoordinates associated with those inputs being appropriately translated.

In other embodiments of this aspect of the invention the distribution offunctionality between the game server and the game client could bedifferent. In some embodiments, a proxy server generally similar to thatdescribed above could be used to perform the subpixel optimization fordisplay on a thin client of game content originally generated on a gameserver that is different than the proxy server. In yet other embodimentsthe game client could itself perform the subpixel optimization.

FIG. 152 is a highly simplified pseudocode description of an aspect ofthe invention that allows images having associated transparency maps tobe displayed with the subpixel optimization of both their foregroundimage and transparency map

The programming 15200 shown in FIG. 152 includes a function 15202 thatproduces a scaled subpixel-optimized bitmap of a foreground image, thatis an image, the display of which on top of a background or other priorbitmap is to be controlled by an associated transparency bitmap. Thesubpixel optimization used can be either a bicolor or a multicolorsubpixel optimization, or a combination of the two. Any method known forproducing subpixel-optimized representations of images could be used,including those that have been described above.

Function 15204 produces a subpixel optimization of the image'sassociated transparency map. Preferably a bicolor subpixel optimizationis used, since a high resolution source image of a transparency map hastransparency values that vary along a straight line in 3-component colorspace, that of an alpha value ranging from 0 to 1. Such source imagealpha values correspond to grayscale colors because, if the area of thetransparency map source image corresponding to a given pixel in thesubpixel-optimized output image of that map is covered by a uniformtransparency value, all of that output pixel's subpixels will tend tohave equal alpha values. Preferably the bicolor subpixel optimization ofthe transparency map is created using the non-linear color balancingdescribed above.

Once such a subpixel optimization of a foreground image and itsassociated transparency map has been created, function 15206 displaysthis combination on a subpixel-optimized display. This process includesperforming a loop 15208 for each pixel row of the displayed image, whichincludes a loop 15210 for each subpixel of each such row. The function15210 causes function 15212 and 15214 to be performed for each subpixel.The function 15212 sets the current alpha value to the alpha value ofthe corresponding subpixel of the subpixel-optimized transparency map.Then function 15214 sets the luminosity of the current subpixel to thecurrent alpha value multiplied by the luminosity of the correspondingsubpixel of the subpixel-optimized foreground image plus the priorluminosity value of the current subpixel in the background bitmap overwhich the transparency image is being drawn multiplied by one minus thecurrent alpha value.

This means that if the foreground image is drawn over a prior bitmap,the extent to which luminosity of each of its separate subpixel's isderived from the corresponding subpixel value of the foreground image,or of the prior bitmap is determined as a function of the correspondingsubpixel alpha value of the subpixel-optimized transparency map.

In some embodiments of the invention, images with associatedtransparency maps will be scaled and subpixel-optimized on a server orbrowser computer, downloaded, and then displayed by function 15206 on aclient computer. In other embodiments of the invention, suchsubpixel-optimized transparency images will be made available onrecorded digital media. In yet other embodiments of the invention theywill be generated by the same computer that displays them.

In other embodiments of the invention subpixel-optimized foregroundimages could be displayed using alpha values contained in anon-subpixel-optimized transparency map.

In some embodiments of the invention lossy color compression will beused to represent groups of colors that are perceptually close with onecolor. Such compression can be performed upon one dimentionaltransparency values, upon three dimensional transparency (i.e., opacityor alpha) values of the type described above with regard to FIGS. 60,96, and 97, or upon color values having a transparency component valueas an extra color dimension, as well as upon RGB component values. Insuch compressions, it is generally advisable to prevent transparencyvalues or component color values representing an alpha one or zero, orvalues very close to one or zero, from being represented by transparencyvalues further from one or zero, respectively. This is because the eyeis more sensitive to slight changes in opacity at the extremes of thetransparency range than it is to such changes elsewhere in that range.

Subpixel-optimized images with transparency maps can be used on subpixeloptimize displays for all the purposes for which non-subpixel-optimizedimages are used with transparency maps. This includes use in animationsand in web page layouts.

FIGS. 153 through 162 are highly simplified pseudocode descriptions ofaspects of the invention relating to subpixel optimization of videoand/or animation. Such subpixel optimization can be used in the contextof Web browsing as well as in virtually any other context in which videoand animations is used.

FIG. 153 represents programming 15300 used to subpixel optimize videorepresented using interpolation between video key frames. Thisprogramming includes a function 15302 that is used in the case where thevideo to be subpixel-optimized is received in compressed format. Itdecompresses such video, so it can be subpixel-optimized.

Function 15304 scales down and subpixel optimizes the keyframes of thevideo. Function 15306 scales down, but does not subpixel optimizeinterpolated changes between keyframes. In some embodiments of theaspect of invention shown in FIG. 153, such interpolation changes couldbe subpixel-optimized, but there is little benefit from doing so, sincesuch changes appear so rapidly on a screen that their subpixeloptimization would not be noticeable, and avoiding their subpixeloptimization reduces computational overhead.

Then function 15308 displays the scaled down video on a subpixeladdressable display with the subpixel-optimized keyframes and the nonsubpixel optimize interframe interpolation.

In other embodiments of the invention, this concept of only subpixeloptimizing portions of video that will be on the screen at one locationlong enough to be clearly perceived could be used in other ways.

FIG. 154 illustrates programming that can be used to subpixel optimizevideo represented totally or partially by sequences of sub-whole-frameimage elements that are to be drawn to a display frame. Commonly suchvideo will also include whole frame images, and will use a sequence ofsub-whole-frame draws to incrementally changes screen as needed torepresent motion of one or more objects within it. This would includeanimation of the type described above with regard FIG. 149. It can alsoinclude various forms of video compression, including video havingkeyframes and interframe interpolation of the general type describedabove with regard FIG. 153.

The programming of FIG. 154 includes a function 15402 used where thevideo to be subpixel-optimized is received in compressed format, inwhich case that function decompresses it. Next function 15404 scales andsubpixel optimizes any frame images contained in the video, scaling themdown by a display scale factor. Then function 15406 scales and subpixeloptimizes any change bitmaps, scaling both the size of such images andtheir location by the scale factor.

Functions 15407 and 15408 repeatedly display on a subpixel addressablescreen any scaled subpixel-optimized video frame in the video sequence.After the display of such a video frame it displays any of one or morescaled, subpixel-optimized change bitmaps over the bitmap of that frameat the scaled position associated with that change bitmap by thefunction 15406.

It can be seen that the method of FIG. 154 enables subpixel-optimizedvideo and animation to be drawn in a manner that reduces the amountcomputation required for subpixel optimization, since it does notrequire the subpixel optimization of an entire frame each time a changeis made to its video image.

FIGS. 155 and 156 illustrate two different methods in whichsubpixel-optimized images that move relative to a frame can bedisplayed.

FIG. 155 includes programming 15500 that displays an image with fixedsubpixelation as it moves in whole pixel increments relative to a largerimage on a subpixel addressable display. It includes a function 15502that stores a subpixel-optimized image, which can be produced by anymethod, including those described above. It includes a loop 15503performed for each successive frame time. This loop comprises thefunction 15504 and 15506. The function 15504 calculates a movement forthe image relative to the larger image. In this movement calculation theposition calculated for the object at each display frame is rounded tothe nearest whole horizontal and vertical pixel location and the sizeand orientation of the image is not altered. The function 15506 displaysthe image at the whole pixel resolution location calculated for it bythe function 15504. Since only one subpixel-optimized bitmap of theimage has to be calculated, and that single image is repeatedly used asit moves across the screen, this method is quite computationallyefficient.

FIG. 156 describes programming 15600 that displays a moving image withchanging subpixelation. It includes a function 15602, which stores ahigh resolution source image of the image to be moved. It also includesa loop 15603 performed for each successive frame time. This loopincludes a function 15604, which calculates the current translation,rotation, and/or transformation of the high resolution source image, ifany for the current frame. Then the loop's function 15606 generates ascaled-down, subpixel-optimized bitmap of the translated, rotated,and/or transformed bitmap so produced. This subpixel optimization takesinto account the location of this transformed bitmap relative to thesubpixel array upon which it will be displayed at a resolution higherthan whole pixel resolution. Then function 15608 of the frame loopdisplays the resulting subpixel-optimized bitmap on a subpixeladdressable display.

Either of the methods described above with regard FIG. 155 or 156 can beused to display sprites in game animation, as well as animated text, orany other type of visual representation that is moved relative to alarger frame.

The method of FIG. 155 tends to provide a less accurate representationof the motion of the visual object, but it is more computationallyefficient. The method of FIG. 156 provides a more accurate visualrepresentation, but is more computationally expensive.

In some embodiments of the invention a combination of these two methodscould be used. For example, a small subset of possible mappings betweenthe object and a subpixel array can be stored, and as the object movesit is displayed with that one of such stored mappings that most closelyrepresents a higher resolution representation of its current locationrelative to the subpixel array upon which it is to be displayed.

FIGS. 157 and 158 illustrates aspects of the present invention used tooptimize the display of DVD or an HDTV video by downscaling and subpixeloptimizing such video for display on a subpixel addressable screen. Thisis particularly useful when used in conjunction with subpixeladdressable screens that have a higher subpixel resolution in thehorizontal direction than they do in the vertical direction, becauseboth DVD an HDTV video commonly has an aspect ratio substantially widerthan it is high.

FIG. 159 illustrates aspects of the invention that can be applied tovideo formats that represent subcomponents of video images as separateobjects having different attributes. The particular example in FIG. 159involves programming 15900 that subpixel optimizes the display of MPEG-4video.

The programming shown in FIG. 159 includes a function 15902 thatreceives and decompresses an MPEG-4 video. It includes functions 15904and 15906 that use different subpixel optimization methods when scalingdown different types of objects in the MPEG-4 video. This function usesbicolor subpixel optimization, preferably with nonlinear colorbalancing, on bicolor objects, and it uses multicolor subpixeloptimization on multicolor objects. It's function 15908 displays acombination of the bicolor and multicolor objects on asubpixel-optimized screen, moving such subpixel-optimized objectsrelative to the screen as dictated by the MPEG-4 description, usingmethods of the type discussed above with regard to FIGS. 155 and/or 156.

Some aspects of the invention are not limited to such use of differentsubpixel optimizing algorithms for different object types in the MPEG-4data stream. But the use of such different subpixel optimizingalgorithms can provide higher perceived resolution for bicolor objects,such as text, and thus has the advantage of providing a somewhat betterimage.

FIGS. 160 and 161 relate to systems in which users accesssubpixel-optimized video over a computer network.

FIG. 160 illustrates programming 16000 used by a server computer thatserves subpixel-optimized, scaled down, video. Such a server could be aproxy server that accesses video requested by the client from yetanother server computer and then downscales and subpixel optimizes itbefore downloading to the client. In other embodiments, the serving ofsuch subpixel-optimized video is performed without such an intermediaryproxy server.

The programming of FIG. 160 includes a function 16002 that receives arequest for certain video from a client computer. In many embodiments,such as the one shown in FIG. 160, the request will also describe thehorizontal and vertical subpixel resolution for which the video is to besubpixel-optimized. In embodiments in which the server is only serving aset of clients having one fixed subpixel resolution, such information isnot needed as part of the request.

The function 16004 receives the requested video content. This can bedone by accessing it from a remote server, as described above; byaccessing it from RAM or a mass storage device associated with theserving computer; by having such content dynamically generated; or byselecting a video fed from some source.

Function 16006 scales down and subpixel optimizes the received video tothe subpixel resolution associated with the request of function 16002.Then function 16008 compresses the subpixel-optimized video and function16010 download that compressed video to the requesting device.

The compression algorithm used for such subpixel-optimized images caninclude one which has a certain amount of loss without substantiallydecreasing the increased spatial resolution made possible by subpixeloptimization, as long as the location of the color values associatedwith any pixel in such subpixel-optimized images are not moved in RGBcolor space by more than a relatively limited color distance.

FIG. 161 describes a system 16100 that can be used with the aspect ofthe invention described in FIG. 160. This system includes proxy computercode 16100 and thin client computer code 16112, both of which areillustrated by highly simplified pseudocode in FIG. 161.

When the thin client receives a user request for certain video, function16113 responds by sending a request for the video, including thesubpixel resolution at which the video is to be displayed to the proxy.When the proxy receives the request for such video its function 16100causes function 16103 to send a corresponding request for the video to aserver from which it can be obtained. In many embodiments this will be aserver identified in the URL of such a request.

When requested video is received by the proxy server, function 16104causes function 16106 through 16110 to be performed. Function 16106scales down and subpixel optimizes the video to the subpixel resolutionassociated with its request from the client; function 16108 compressesthat subpixel-optimized video; and function 16110 downloads it to theclient that has requested it.

When the client receives the requested video from the proxy, function16114 causes function 16115 to decompress it, and function 16116 todisplay the downscaled, decompressed video on a subpixel addressabledisplay.

FIGS. 162 through 166 are used to illustrate how aspects of theinvention can be used to improve the appearance of digital ink. Digitalink is usually a black and white bitmap drawn on a screen in response toa user attempting to write or draw with his or her pointing device. Inthe past, digital ink bitmaps have usually been represented at a wholepixel resolution in which each pixel is shown as either black, white, orin some devices a grayscale value.

One aspect of the invention is the use of subpixel optimization torepresent digital ink with a higher resolution. When digital ink that isrepresented within the computer's memory by points and lines or curvesbetween such points, the resulting mathematical description of the linesbetween such points can have a much higher resolution than the wholepixel resolution of the screen.

FIG. 162 is a highly simplified pseudocode description of programmingthat can be used to optimize the clarity with which digital ink can beviewed.

The digital ink code 16200 shown in FIG. 162 includes a function 16202that responds to user input with a pointing device while in digital inkdraw mode, by recording the strokes of the pointing device as a seriesof points and curve or lines between such points. Function 16206 drawsink on the screen using a subpixel optimization of the lines and curves.This can be done with virtually any subpixel optimization scheme, but itis preferrably done with a bicolor subpixel optimization scheme, such,as for example, a bicolor subpixel optimization scheme using non-linearcolor balancing.

FIG. 163 illustrates some digital ink 16302 that has been drawn on thescreen of a handheld computer 16300. Because this illustration isprinted with a printer that can only represent whole pixel luminosityvalues, the digital ink illustrated in FIG. 163 displays subpixeloptimization as grayscale anti-aliasing. It to be appreciated that whenviewed on a subpixel addressable display the image would appear evenmore clear than shown in FIG. 163.

If the user of the digital ink programming selects to scale up arepresentation of a portion of digital ink, function 16208 causesfunction 16212 to produce a subpixel-optimized bitmap of the digital inklines and curves, using a bicolor subpixel optimization with non-linearcolor balancing, at the user selected scaled-up size. Then function16212 displays that scaled-up image on the users screen.

FIG. 164 illustrates a scaled-up representation 16302A of the portion ofdigital ink 16302 shown in FIG. 163. This provides a substantially moreclear representation of the digital ink, than is produced by merelyblowing up the pixelation of the digital ink's representation 16302shown in FIG. 163, as is illustrated by the bitmap 16302B shown in FIG.165.

It should be noted that the bitmap shown in FIG. 165 is actually morepleasant to look at than some scaled-up representations of digital inkbecause the bitmap shown in FIG. 163 has been printed with whole pixelgrayscale values with anti-aliasing, which is not used in some digitalink representations.

If the user selects to scale down the representation of digital ink,function 16214 causes function 16216 to produce a subpixel-optimizedbitmap of the ink's lines and curves using bicolor subpixel optimizationwith non-linear color balancing at the selected scaled-down size, andthen causes function 16218 to display that scaled-down bitmap on thesubpixel addressable display. The results of such a process isillustrated by the bitmap 16302C shown in FIG. 166.

These aspects of the invention can be modified to deal with digital inkthat has been recorded as whole pixels that are either on or off. Thiscan be done by having a routine estimate a centerline of each strokerepresented by such “on” pixels, and then producing a subpixel optimizeimage of the digital ink's centerline at various scales as describedabove. A more accurate but more computationally expensive approach wouldbe to seek an optimal fit between successive portions of such digitalink and a corresponding succession of lines and curves, such as, forexample Bezier curves.

In other embodiments, subpixel optimization could be performed onbitmaps that have been produced by digital ink drawing by merelyperforming subpixel-optimized scale ups or scale downs upon suchbitmaps.

Some embodiments of the invention that relate to digital ink could beused with non subpixel-optimized displays, by replacing subpixeloptimization with grayscale anti-aliasing.

FIG. 167 illustrates physical components that can be included in many ofthe server, client, proxy server, thin client, remote, desktop, or othercomputers referred to above. It should be understood that not all of thecomponents shown in FIG. 167 will be in all such computers, and mostsuch computers will include other components besides those shown in FIG.167.

This figure is provided to make clear that most of the computers usedwith various aspects of the present invention include some type ofprocessor 16716 capable of executing programming 16702 to cause it toperform the functions of such aspects of the invention and to read andwrite data 16704 according to the methods of such aspects. The presentinvention relates to not only to methods but also to such computerprogramming and data, as well as to computer systems that have beenprogrammed and/or hardwired to perform such methods or to use such data.

In most such computers the invention's programming will be stored in RAM16706; ROM 16707; or a mass storage device such as a hard drive 16708,floppy drive 16709, CD-ROM drive 16711, and/or DVD drive 16713. It canalso be stored in machine-readable media, such as on a floppy disks16710, CD ROMs 16712, DVD ROMs 16714, or virtually any other type ofmachine readable storage media. The invention's programming and/or datacan also be the represented as propagated signals indicated by thenumeral 16719 that can be received by the computer through some sort ofcommunication port, such as the network interface 16720.

FIG. 168 provides a whole-pixel grayscale representation of a 320 by 240screen showing a small subpixel-optimized font produced using thenon-linear color-balance method described above with regard to FIGS. 60through 97. This figure is identical to FIG. 56 except that a portion ofits text is encircled by dotted lines 16800.

FIG. 169 is an eight times blowup of the portion of the bitmap shown inFIG. 168 within the dotted lines 16800. It shows that most of thevertical strokes in the font shown in FIG. 168 contain color-balancedistributions one their left hand side that blur the clarity of suchfonts.

One of the major benefits of the non-linear color-balancing method ofproducing subpixel optimized font bitmaps is its ability to decrease theblurring of character-font shapes by the non-linear method with which itseeks to substantially prevent the distribution of color balancingvalues where it is not needed for color balance.

Upon observing the spreading of color values to the left of the mainstrokes of fonts of the type shown in FIG. 169, the inventor of thisaspect of the invention sought to see if such spreading could bereduced. He tried to determine what the source of such spreading was.

Referring now to FIG. 170, he found that the algorithm used for creatingnon-linear color-balanced bitmaps was designed to automatically placetwo padding columns of subpixels 17000 to the left of the leftmostsubpixel column 17002 in the rasterization of a character-font shapethat included an actual non-zero coverage value 17004 (i.e., wasactually covered by a portion of the character-font shape beingrepresented by the rasterization). This was done to provide room for thespreading of color balancing color values into the two subpixel columnto the left of the leftmost subpixel column containing such a non-zerocoverage value, if such a leftward spreading was required by thenon-linear color balancing algorithm, described above, which allowscolor balancing distribution two pixel to the left of a totally orpartially covered subpixel.

Unfortunately padding the rasterization subpixel array with only twosuch subpixel columns 17000 tends to have the undesirable effect ofmaking the leftmost subpixel column 17002 that contains such a coveragevalue be the rightmost subpixel column of the pixel column containingthe two padding subpixel columns. In an RGB display this would cause theleftmost subpixel column containing an actual coverage value tocorrespond to a blue subpixel.

This is undesirable because it tends to cause pixels in the leftmostpixel column in a font bitmap to contain two leftmost subpixels thathave no actual coverage value and a rightmost subpixel that does includea non-zero coverage value, requiring that non-zero coverage value to bedistributed to achieve color balancing. This is a reason for much of theleftward blurring of major vertical strokes shown in FIG. 169.

The inventor noted that character-font shapes hinted with systems thatallowed boundaries of vertical strokes to be positioned in incrementsfiner than the width of a subpixel column had often been designed by theindividuals who hinted them to start the leftmost edge of their leftmostvertical stroke, such as the edge 17100 shown in FIG. 171 only a slightdistance into the leftmost subpixel column containing non-zero coveragevalues 17002. This would substantially reduce the amount of the non-zerocoverage value contained within the subpixel column 17002 that had to bedistributed by non-linear color balancing, thus greatly reducingundesirable blurring in the subpixel optimized representation of thecharacter.

For example, the inventors found that many of the best hintingcombinations, when used with such algorithm, cause the first verticalstrokes of a character, such as the vertical strokes 17102 shown in FIG.171 to have its leftmost edge slightly into one subpixel column, withtotal coverage in three successive subpixel column to the right, so asto cause the second leftmost pixel column 17103 in the resulting bitmapto have one or more pixels totally covered so as to require nocolor-balance spreading.

In such an optimized hinting process, subsequent vertical strokes wouldbe aligned to cover three adjacent subpixel column starting at adistance of three, six, or nine subpixel column from the rightmost edgeof the first vertical stroke. This would cause the subsequent verticalstrokes, such as the vertical strokes 17104 and 17106 shown FIG. 171, tohave multiple pixels that are totally covered, so as to require no colorbalancing.

Although fonts of the type shown in FIGS. 168 to 171 are more readablethan most subpixel-optimized font bitmaps produced by prior art method,as a result of these investigations the inventor has figured how toproduce even more clear subpixel optimized font, as shown in FIGS. 172through 174.

FIG. 172 shows a whole-pixel grayscale bitmap representing asubpixel-optimized 320 by 240 pixel display of a web page of the typeshown in FIG. 168, except that it uses a new, more clear method forproducing and displaying font bitmaps.

FIG. 173 shows a four times blowup of the portion of FIG. 172 shown inthe dotted box numbered 17200.

FIG. 174 shows a further four times blowup of the portion of text shownin the dotted lines 17300 in FIG. 173.

As can be seen from looking at FIGS. 172 through 174, there isrelatively little horizontal spreading of color values from many of thevertical strokes contained in the font bitmaps shown in those figures.It should be noted that the uniform light gray background in FIGS. 173and 174 results because the text in those figures was taken from aportion of the web page of FIG. 172 that had a background color, notbecause of any spreading due to color balancing. The fonts shown inthese figures are substantially more clear than those shown in FIGS. 168and 169.

The inventor has made this improvement by aligning the leftmost edge ofa character's leftmost vertical stroke with the left edge of a pixelboundary. In many embodiments this is done by inserting three paddingsubpixel column 17500, shown in FIG. 175 before the leftmost subpixelcolumn that contains a non-zero coverage values. This automaticallyaligns the leftmost rasterization unit (i.e., subpixel) all or partiallycovered by a character's outline with the leftmost edge of a pixelcolumn. If a characters is hinted so its leftmost outline edge isaligned with the leftmost edge of a rasterization unit, this willautomatically cause that leftmost outline edge to be aligned with theleftmost edge of a pixel in the resulting font bitmap. When the leftmostedge of a font outline is a vertical stroke this makes it very easy tocreate a font bitmap that has clear leftmost vertical edge, even afternon-linear color balancing.

FIG. 176 shows one of many possible hinting interfaces that can be usedwith the present invention. In this hinting interface the dotted lines17602 is a line that can be moved by the user to interactively definethe left side bearing for a desired character. The dotted line 17604 isa movable line that defines the right side bearing. The left sidebearing is the distance between the initial reference point, sometimescalled the pen position, relative to which a character is to be drawnand the leftmost edge of the bitmap of the character being drawn. Theline 17604 corresponds to the location relative to the bitmap at whichthe pen position will normally be placed at the start of the drawing ofthe next successive character along a line of text. The right sidebearing is the distance between the line 17604 and the rightmost edge ofthe bitmap of the character being drawn. The advance width is defined asthe distance between the lines 17604 and 17602. This represents thenormal total width between pen positions before and after the drawing ofa character's bitmap. In some embodiments, the left side bearing valueand the advance width are rounded to whole multiples of pixel widths,although in other embodiments this need not be true. In some cases, theleft and/or right side bearing values can be negative. For example thisoften happens with italic fonts in which the bitmaps associated withsuccessive characters often overlaps portions of each other's advancewidth.

Each of the small rectangular dots 17606 shown in FIG. 176 correspond tothe center of a rasterization unit, which, in subpixel-optimized fontbitmaps, correspond to an individual subpixel. In this particularhinting interface rasterization units more than half covered by acharacter-font shape's outline are shown in black, although in moreadvanced interfaces such rasterization units could be shown withgrayscale coverage values. The character-font shape's outlines are shownin the figure and each point that defines a segment in the outline isnumbered, whether it be a control point or a segment endpoint.

FIGS. 177 through 181 are used to help explain some of the stepsdescribed in the highly simplified pseudocode contained in FIG. 182.

FIG. 182 is a highly simplified pseudocode description of programming6000A, which corresponds generally to the pseudocode shown in FIG. 60,except that the pseudocode shown in FIG. 182 focuses on computationalaspects that relate to the improved method of producing more clearnonlinearly color-balanced subpixel-optimized bitmaps described abovewith regard to FIGS. 172 and 176.

The pseudocode includes a function 18202, which determines the tightestrectangular array of rasterization units into which a character-fontshapes can be placed, taking into account the alignment of its shaperelative to such rasterization units defined by its hinting.

The position of the font outline relative to the individualrasterization units in which it occurs is not changed by this function.Thus, if such an outline's leftmost point occurs other than at the leftedge of the rasterization unit it is in, that rasterization unit willappear at the leftmost edge of the tightest rectangular array producedby function 18202, and the leftmost point of that outline would occurwithin the leftmost rasterization unit column of that rectangle, but itwould not occur at the leftmost edge of that leftmost column.

FIGS. 177 and 178 are used to help explain this function. FIG. 177corresponds to a hinted character-font shape outline. FIG. 178 shows therectangle of rasterization units (each corresponding in size to asubpixel) returned by function 18202 for the character outline shown inFIG. 177. This grid corresponds to the tightest, or smallest, rectangleinto which the rasterization unit containing the character font shapefits.

Once the function 18202 has been completed, functions 6002A through 6006are performed. These correspond to steps 6002 through 6006 of FIG. 60.They are used to determine a coverage value for each rasterization unitcontained in the rectangle returned by function 18202. Each suchcoverage value represents the percent of the subpixel covered by thehigher resolution character-font shape outline being rasterized.

FIG. 179 illustrates the coverage values calculated for eachrasterization unit in the array shown in FIG. 178. In it coverage isrepresented by the percent of the rasterization unit that is coloredblack. In FIG. 179 the portion of the resulting bargraph in eachrasterization unit representing coverage is placed at the top of thatunit if the corresponding part of the unit covered by the character-fontshape outline occurs at the top of the rasterization unit.

In FIG. 180 the bargraphs for all individual rasterization units areplaced starting at the bottom of the corresponding subpixel unit, so asto make them correspond more closely with the representation of coveragevalues shown in FIGS. 46 through 52 and 92 through 93, described above.

Once the character-font shape has been rasterized, step 18204 maps theresulting array of subpixel coverage values into an array ofsubpixel-addressable pixels. It does so aligning the first column ofrasterization units in the tight rectangle described above with theleftmost subpixel of a pixel row. This causes the leftmost column ofrasterization units that have a nonzero coverage value to be placed as aleftmost subpixel column in a whole pixel as described above with regardto FIG. 175. In the example illustrated in FIGS. 177 through 181, thiscauses the resulting subpixel array to appear as shown in the set ofcentral pixel columns labeled 18102 in FIG. 181.

Next a step 18206 pads the bitmap array being created for the currentcharacter with a pixel column comprised of three subpixel's to the leftof the pixel containing the leftmost subpixel column containing anactual nonzero coverage value. This causes the subpixel array in theexample to appear as shown by the combination of pixel columns 18104 and18102 in FIG. 181.

Next a step 18208 pads the bitmap array with two or more subpixelcolumns to its right, so as to cause the total number of subpixelcolumns of the bitmap to be an even multiple of three, that is to be aneven number of whole pixel columns. This causes the example subpixelarray to appear as shown by the combination of pixel columns 18104,18102, and 18106 in FIG. 181.

Step 18210 adjusts the left and right side bearing value to compensatefor the addition of the padding pixel columns. Thus, for example, abitmap that would otherwise have a left side bearing of one pixel widthwould be changed to have a left side bearing of zero to compensate forthe addition of the left side padding column. Similarly a bitmap thathad and extra pixel column added to its right side would decrease itsright side bearing by one pixel width.

Next function 18212 performs non-linear color balancing, which in manyembodiments will correspond to the steps described by the loop 6008shown in FIG. 60, described above.

Once this has been done, in embodiments using a packed color valuerepresentation of the type described in FIG. 96 above, step 18214converts the pixel color values resulting after the color balancingoperation into corresponding values from a more limited color palette.

Note that the method of FIG. 182 allows room for any color balancingthat might be necessary, without tending to cause the unnecessary colorspreading discussed above with regard to FIGS. 168 and 169. It does thisby insuring that there are at least two subpixels to the left and to theright of any subpixels corresponding to area covered by the font shapebeing rasterized.

In other embodiments of this aspect of the invention other methods willbe used to cause leftmost and rightmost edges of font shapes andvertical strokes to be aligned with whole pixel boundaries, so as totake maximum advantage of the capability of non-linear color balancingto reduce smearing. In some such embodiments, whether or not a paddingpixel columns was added to the left or right side of a font bitmap couldbe a function of whether or not color balancing distributions wererequired in such columns.

FIG. 183 describes functions for drawing a string of characters usingthe bitmaps produced by the method described in FIG. 182. Thispseudocode is similar to that described above with regard FIG. 97,except that it focuses on an aspect of the invention that is quiteuseful with the method for producing more clear non-linearlycolor-balanced subpixel-optimized font bitmaps describe with regard toFIG. 182.

When the draw string function 18300 shown in FIG. 183 is called, a step18302 sets the pen position to a start position specified by the drawstring call that indicates where the display of the string is the start.

Then a loop 9714A similar to the loop 9714 described in FIG. 97 isperformed for each character the string to the display.

In this loop a step 9716 accesses the current character's font bitmap.Then a step 18304 sets the character start position to the current penposition. Then a step 18306 adjusts the current pen position by the leftside bearing. As has been described above, the left side bearing hasbeen changed from what it would normally be to take into account thefact that the character bitmap has been padded with one extra pixelcolumn on its left hand side, and thus will be decreased by the width ofone pixel column.

Next a step 9718A is performed for each pixel in the font bitmap. Thisincludes a substep 18308, which tests to see if the current pixel'svalue is nonzero. If so, it draws the pixel on the screen at a positiondetermined as a function of the current pen position.

If the current pixel's value is zero, it represents a totallytransparent pixel, meaning the background color previously at theposition of the current pixel should be left unchanged. In thisembodiment of the invention the functions described in FIG. 96 reservethe value 0 to represent such a totally transparent pixel.

This practice of not writing transparent pixel's is applied to allpixels of the bitmap in the embodiment described in FIG. 183. Thispractice is particular valuable with regard to pixels in the paddingcolumn placed at the left most edge of a character-font bitmap by step18206 described above regard FIG. 182. This is because pixels in suchpadding columns will commonly have no color values spread into them as aresult of non-linear color-balancing when vertical stroke boundarieshave been aligned to vertical pixel boundaries. As a result, such pixelswill be transparent and color values that may have been placed in theirlocation by the character to its left can remain unchanged, allowing thepixel columns of adjacent characters that contain coverage or colorbalancing information to be placed adjacent to each other.

This can be seen for example at the location indicated by the numeral17302 in FIG. 173 where the pixel column between the “w” and “e” of theword “Web” contained color values from the “w” that have been allowed toshow through the transparent, and thus non-written, left side paddingcolumn associated with the “e”. This can also be seen at the locationindicated by the numeral 17402 shown in FIG. 174, in which the pixelcolumn between the “r” and the “e” contain color values from the “r”that are not overridden by the transparent padding pixel column of the“e”.

As those skilled in the art will recognize, function 9718A will requiresome sort of iteration controlling the position at which pixels aredrawn to be repeated for each row of a font bitmap, so as to have eachof its bitmaps drawn in the proper place.

It should be appreciated that in other embodiments of the invention,function could be provided that would allow overlapping non-transparentpixel values from adjacent characters to be combined, rather than merelyallowing non-transparent color values from one character to show throughwhen the corresponding pixels of the following character aretransparent.

Preferably such a process would allow combination of such transparencyvalues on a subpixel-by-subpixel basis. Such a process could provide aneven more accurate representation of closely spaced letters, although itwould require more computation.

One way of achieving this result would be as follows: Add each of thethree corresponding alpha component values associated with anyoverlapping pixel between characters, clipping any component values attheir maximum possible value. And then drawing each of the resultingpixels, using the combined component alpha values to determine how muchforeground color and how much background color should be drawn at itslocation.

FIG. 184 illustrates an alternate embodiment of this method forproviding more clear non-linear color-balanced font bitmaps. Itillustrates a hinting interface similar to that described above regardFIG. 176, except that it includes an interface feature 18402 comprisedof a user-movable line or control. This control allows the user toselectively position, relative to his or her character-font shapeoutline, the location to be aligned with the leftmost edge of a pixelcolumn following the leftmost padding pixel column.

Such an interface feature is more desirable when hinting fonts that havea leftmost edge that is other than a vertical stroke. For example, whendealing with a character-font shape having a leftmost main verticalstroke with a small serif sticking out from to its left edge by lessthan a full pixel width, the hinter may want to have the main leftmostedge of the vertical stroke aligned with a whole pixel boundary, ratherthan the more leftward serif. The interface feature shown in FIG. 184would make such an alignment easy for a hinter to select.

Another way of giving a hinter the equivalent capability would be toallow him or her to select whether to add only two subpixel paddingcolumns, as described above with regard FIG. 170 or 171, or to add threeor more such subpixel padding columns, as is described above with regardto FIGS. 175, 181 and 182.

The just described method for making non-linear color balanced subpixeloptimized bitmaps more clear is not only applicable to small fonts ofthe types shown in FIGS. 172 through 174 but also to larger fonts, suchas the relatively large font shown in FIG. 55.

It should be appreciated that subpixel optimization can usuallyrepresent a font bitmap with just three different types of pixels: aforeground pixel, a background pixel, and an intermediary, colorbalancing, pixel. A foreground pixel represents a portion of the fontimage totally covered by the font shape being represented, and is drawnwith the foreground color with which the character is being represented.A background pixel represents a portion of the font image totallyuncovered by the font shape, and is drawn with the color of thebackground on top of which the font is being shown. An intermediatepixel represents a pixel that is partially covered by the font shapeand/or which receives color balancing distributions for a nearby pixel.The color of each of its subpixel's is determined separately by colorbalancing.

When prior art linear color balancing of the type described above withregard to FIGS. 46, 47, 52, and 93 are applied to fonts, color balancingis performed across every edge of a character shape in the direction ofsubpixel color variation, even if that edge is perfectly aligned with apixel boundary. This leads to the spatial smearing of the shape of allletters, no matter how well hinted.

When non-linear color balancing of the type described above with regardto FIGS. 48, 49, 51, and 91 is applied to fonts, hinting can be used togreatly reduce the spatial smearing caused by color balancing. Inportions of a character's shape where its edges are aligned with pixelboundaries, often no color balance distribution will be required acrosspixel boundaries. This is because such non-linear color balancing onlydistributes color imbalance that occurs within a give pixel. This allowsforeground pixels to be next to background pixels along the direction ofsubpixel color variation in such locations, greatly increasing theperceived clarity of the font shape. This is shown in FIGS. 173 and 174in which substantial portions of the vertical strokes in the 8 pixel perem font shown those figures have been hinted so that their edges alignwith pixel boundaries. As a result, foreground pixels are locatedhorizontally next to background pixels along substantial portions of theedges of many such vertical strokes. Even with the less optimal hintingof leftmost vertical stroke edges shown in FIGS. 168 and 169, the amountof color-balance smearing is substantially less than that which wouldresult from prior art linear color balancing.

FIGS. 185 through 190 are highly simplified pseudocode descriptions ofuser interface innovations that can be used to improve the browsing ofWeb pages, particularly when such browsing is performed on relativelysmall or relatively low resolution screens.

FIG. 185 is a higher level description of the selected-text re-flowmethod described above with regard to FIGS. 129 through 134. This method18500 includes a function 18502 that accesses a Web page's content and afunction 18504 that performs a first layout of the Web page's content,placing text at different horizontal locations indicated for text in theweb page. The markup languages used to describe Web pages have multiplemethods of indicating that different portions of text are to be drawn atdifferent horizontal locations or in different horizontal ranges in aweb page, including, to name just two, the use of tables and frames.

Once such a layout has been performed, function 18506 displays theelements of the layout at a given scale and at relative positionsdetermined by the first layout. After this display has been performed astep 18508 enables the user to select a portion of the text at a givenhorizontal location in the display of the first layout. On way ofenabling this is described above with regard to FIG. 130.

If such a selection is made, function 8510 causes function 18512 and18514 to be performed. Function 18512 performs a second layout of thetext that has been selected by the user. This second layout re-flows theselected text across the lines of the new column in which the text has adifferent, usually larger, font size relative to the width of the linesin the new column. When this second layout is been performed, function18514 displays the layout of the new column at a scale that fills atleast two thirds of the width of the screen or screen window on whichthe web page is being displayed.

As indicated above with regard to FIGS. 135 through 137, the secondlayout in such selected-text re-flow method allows a user to seeselected portions of the Web pages layout in large easy-to-read fontsizes. This can be a tremendous advantage on both low resolutionscreens, screens that are small, and/or screens that are relatively farfrom their viewer. The first layout in such a method allows the user toget a view of how the web page is intended to look in more normaldisplays, and allows the user to more rapidly select that portions ofthe text he or she desires to see re-displayed at a larger font size.

FIG. 186 is a high-level pseudocode description of a zoom-to-fit method18600, of the general type described above with regard to FIGS. 118through 120.

This method includes a function 18602 that accesses a Web page'scontent, and a function 18604 that lays the Web page's content out.

Once such a display of the layout is being shown on a screen, function18608 enables the user to drag a pointing device across this display.During such a drag, if the drag continues across a boundary associatedwith a screen edge, a function 18610 causes function 18612 to scroll,onto the screen, portions of the layout that were previously off screenon the other side of the screen edge. This is done to allow user toselect with a drag a portion of the layout that is either too large toentirely fit on the screen at the current display scale or that waspositioned at the start of a drag so that only part of it was on thescreen.

If the user releases the drag, function 18614 causes functions 18616 and18618 to be performed. The first of these causes a part of the layout tobe defined as selected based on the positions in the layout thatcorresponds to the start and end of the drag. Such a selected part cancorrespond to a portion of the layout having either the horizontal orvertical range of the drag or to an area having diagonal cornerscorresponding to the start and end of such a drag. Then function 18618displays the selected part of the layout at a scale that causes it tosubstantially fit the screen.

FIG. 187 is a high-level pseudocode description of a drag scroll method18700 that allows a user to easily navigate within the display of a webpage's layout.

This method includes a function 18702 that accesses the Web page'scontent, a function 18704 that performs a layout of the Web page'scontent, and a function 18706 that displays all or portion of thatlayout at a given scale factor. Then a function 18708 enables the userto drag a pointing device across the display of the layout. Function18710 responds to any such drag across a boundary associated with ascreen edge by scrolling onto the screen, past the screen edge, portionsof the layout previously off screen.

This method can be used as part of, or independently from, zoomselection functions. It has the advantage of enabling a user to scrollaround the display of the layout of a web page by merely dragging apointing device across a boundary at, or near, an edge of the displayscreen.

FIG. 188 is a high-level pseudocode description of a click-zoom method18800 that enables a user to rapidly select to zoom in on a desiredportion of the display of a layout of a web page. This method includes afunction 18802 that accesses the web page's content, a function 18804that performs a layout of the Web page's content, and a function 18806that displays all or a portion of the Web page's layout at a firstscale. A function 18808 enables the user to click a pointing device at aselected location in the display of the layout at the first scale, andfunction 18810 responds to such a click by performing a zoomed-indisplay of the portion of the layout around the location in the layoutat which the click was performed. Commonly the zoomed-in display will becentered on the location in the layout at which the click was made.

FIG. 189 is a highly simplified pseudocode description of the zoom-clickmethod 18900 described above in some detail with regard to FIGS. 121through 128.

This method includes a function 18902 that accesses the Web page'scontent, a function 18904 that performs a layout of that content, and afunction 18906 that displays all or a portion of the web page's layoutat a first scale on a display screen having an associated pointingdevice. In the particular embodiment of this method described in FIG.189, the screen is a touch screen and it is intended that the pointingdevice can be a person's finger.

Once the display of the layout at the first scale has been performed, afunction 18908 responds when a press has been made to the touch screendisplay. When such a press occurs, this function causes functions 18910through 18922 to be performed.

Function 18910 replaces, on the screen, the display of a portion of theweb page at the first scale with a zoomed-in display of a portion of theweb page at a larger scale. This zoomed portion includes a selectedlocation in the layout associated with touch screen press. Preferablythe selected layout position has substantially the same location on thescreen in the zoomed-in display as it had in the display at the firstscale at the time of selection. By substantially same position, it ismeant that the selected positioned should have locations on the screenboth immediately before and after the zoom that appears to correspond tothe same touch positioned on the screen. Preferably this would mean thatthe change in the selected position's screen location would not changeby more than twenty percent of the width or height of the screenimmediately after such a zoom.

Once the zoomed-in display is shown, function 18912 displays a cursorabove the location at which the screen is being touched to indicate theselected location in the web page layout associated with the touch. Insome touch screen devices, particularly those designed for use withstyluses having relatively fine points, there is no need for such acursor, since the user can see with considerable accuracy the point atwhich the screen is being touched. But in touch screens designed for usewith fingers as pointing devices it is often desirable to place a cursorabove the location at which the screen is being touched so the user canaccurately see the location in the screen's display that is associatedwith such a touch. This is particularly desirable when the method isbeing use with a display, such as that shown in FIGS. 121 through 128,that is relatively small compared to the size of a human finger.

During the continuation of the touch, a function 18914 responds to anymovement of the touch by correspondingly moving the cursor in the zoomeddisplay. Also during the continuation of such a touch, a function 18916response to any movement of the touch across a boundary associated witha screen edge by scrolling onto the screen, past the screen edge,portions of the layout at the zoomed scale that were previously off thescreen. This allows the user to rapidly and conveniently scroll withinthe zoomed display of the web page while in zoom-click mode.

Function 18918 responds if the user releases a touch at a givenpositioned in the zoomed display of the web page. If so, a function18920 acts as if a pointing device click had occurred at a positioned inthe web page corresponding to that of the release. For example, if therelease is at a layout location corresponding to a web link, the systemwill respond by selecting the link, or if the release is at the locationof a radio button, the system will respond by flipping the state of theradio button.

Once this has been done, a function 18922 replaces the display of thezoomed-in layout on the screen with a display of the layout at the samefirst scale factor at which the web page was displayed before thepointing device press was detected by function 18908.

As described above with regard to FIGS. 121 through 128, zoom-clickprovides a valuable technique for allowing a user to rapidly see andselect desired portions of a web page at a zoomed-in scale that makesthe contents of those selected parts easier to read and easier toaccurately select with a pointing device.

FIG. 190 is a highly simplified pseudocode description of a method 19000that allows a user to see a zoom-out view of a web page using greekingto represent text lines. Greeking is the representation of the size atwhich portions of text are laid out in a document by non-readablegraphic representations.

This method includes a function 19002 that accesses a Web page'scontent, a function 19004 that performs a layout of the web page'scontent, and functions 19006 and 19014 that detects the scale at whichthe user has selected to have the layout of the web page's contentsdisplay.

If the user has selected to have the web page's layout displayed at agiven larger display scale, function 19006 causes function 19008 todisplay a portion of the web pages layout at the larger scale. Thisincludes performing a function 19010 to represent the layout's imageswith bitmap images scaled for display at the larger scale and a function19012 that represents the layout of the web page's strings with bitmapscomposed from separate font bitmaps that have sizes appropriate fordisplay at the larger scale.

If, on the other hand, the user has selected a given smaller displayscale, one which is so small that at least some of the text of the webpage cannot be displayed at that scale in a size that is readable,function 19014 causes a function 19016 to display a portion of the webpage's layout at the smaller scale. This includes performing a function19018 that represents the layout's images with bitmap images that havebeen scaled down for display at the smaller scale, and a function 19020that represents at lease some strings with bitmaps composed of greekedtext representations that indicate the size and location of individualstrings in the display at the smaller scale.

In many cases the bitmaps used to represents strings in such greekingwill merely be lines or rectangles having a width and/or heightcorresponding to the size of their corresponding strings in the webpage's layout at the small-scale.

When a layout is displayed at a size in which text is too small to readthe use of greeked representations of text can makes such a displayeasier and more pleasant to see, and such greeking generally takes lesscomputation to generate that would corresponding string images generatedfrom unreadabily small font bitmaps.

One of the major uses of the method shown in FIG. 190 is to enable auser to quickly gain an overview of a web page's layout and to allow himor her to quickly select different portions of such a web page, such ashas been described above with regard to FIGS. 136 and 137.

Those skilled in the art of computer user interfaces will appreciatethat some of the methods described in FIGS. 185 through 190 can be usedin combination with each other and with other aspects of the inventiondescribed above as part of a single user interface mode, whereas othersare them would normally be used in different user interfaces ordifferent user interface modes.

It should be understood that the foregoing description and drawings aregiven merely to explain and illustrate, and that the invention is notlimited thereto except insofar as the interpretation of the appendedclaims are so limited. Those skilled in the art who have the disclosurebefore them will be able to make modifications and variations thereinwithout departing from the scope of the invention.

The invention of the present application, as broadly claimed, is notlimited to use with any one type of operating system, computer hardware,or computer network, and, thus, other embodiments of the invention coulduse differing software and hardware systems.

Furthermore, it should be understood that the program behaviorsdescribed in the claims below, like virtually all program behaviors, canbe performed by many different programming and data structures, usingsubstantially different organization and sequencing. This is becauseprogramming is an extremely flexible art in which a given idea of anycomplexity, once understood by those skilled in the art, can bemanifested in a virtually unlimited number of ways. Thus, the claims arenot meant to be limited to the exact steps and/or sequence of stepsdescribed in the figures. This is particularly true since the pseudocodedescribed in the text above has been highly simplified to let it moreefficiently communicate that which one skilled in the art needs to knowto implement the invention without burdening him or her with unnecessarydetails. In the interest of such simplification, the structure of thepseudocode described above often differs significantly from thestructure of the actual code that a skilled programmer would use whenimplementing the invention. Furthermore, many of the programmedbehaviors that are shown being performed in software in thespecification could be performed in hardware in other embodiments.

In the many embodiment of the invention discussed above, various aspectsof the invention are shown occurring together that could occurseparately in other embodiments of those aspects of the invention.

Most of the various illustrations of subpixel optimization andnon-linear color-balancing described in various parts of thisspecification relate to RGB subpixel addressable displays havingvertical subpixel striping. It should be appreciated that many aspectsof the present invention that relate to non-linear color balancing andsubpixel optimization can be used with subpixel displays that have BGRor other types of subpixel addressability, as well as subpixel displayshaving horizontal subpixel striping.

In the non-linear color balancing methods shown above the only portionof a subpixel's luminosity distributed by color balancing is that whichis higher than the minimum subpixel luminosity value within a pixel. Butin other embodiments other portion of a subpixel's luminosity that causecolor imbalance within a pixel could be distributed, such as portionsthat differ from the mean or maximum subpixel luminosity of pixel. Insuch embodiments subpixel luminosity values below such a mean or maximumwould, in effect, be negative luminosity values, that could bedistributed by a weighted decreasing of subpixel luminosities in such asubpixel's neighborhood.

All the non-linear color balancing methods shown above only distributethose portions of a subpixel's luminosity that cause color imbalancewithin a subpixel's corresponding pixel. This is done because thearrangement of three successive RGB or BGR subpixels commonly foundwithin a whole pixel are perceptually well color balanced. If thesubpixels of such a whole pixels are of equal luminosity they tend toappear more color balanced to the eye than an isolated set of the samethree colored subpixels shown at the same intensity in an order in whichgreen is not the central color. This is one of the reason why edges offonts that appear at other than whole pixel boundaries appear colorimbalanced.

But other non-linear color balancing embodiments need not be limited toonly distributing subpixel luminance that causes imbalance withinindividual whole pixels. Other non-linear color balancing embodimentscould determine the degree of subpixel color imbalance within regionsother than whole pixels, and distribute subpixel luminance values basedtotally or in part on imbalance with such regions. For example, studiescould be performed to find which distributions of imbalanced coveragevalues created a minimal spatial spreading while maintaining theperception of color balance, for each of a plurality of commonlyoccurring imbalance patterns, and such perceptually selecteddistributions could be used to distribute color imbalance that occurs inspatial regions other than whole pixel regions.

Certain aspects of the invention relate to the creation and use ofsubpixel optimized images that calculate luminosity values forindividual pixels by line coverage techniques. It should be appreciatedthat other aspects of the invention claimed below without specificrecitation of such line or area coverage functions are not limited tosuch methods of determining subpixel luminosity and could for exampleuse other known methods for determining coverage values with sourceimages comprised of color bitmaps, greyscale bitmaps, fonts, and othershapes, including, but not limited to, area sampling techniques.

In the discussion above, the source image windows used to assignluminosity or coverage values in subpixel-optimized bitmaps arerectangular, and have sizes corresponding a whole pixel in a multi-colorsubpixel-optimized image and corresponding to a subpixel in a bicolorsubpixel optimized image. In other embodiments windows of differentshapes and sizes can be used. For example, in multi-coloredsubpixel-optimized images source image windows might have a sizesomewhat smaller that that corresponding to a whole output image pixel.In some embodiments, a non-uniform weighting function could be used totranslate coverage or luminosity values in a source image window intocoverage or luminosity value in the output image. For example, inmulti-color subpixel-optimized images it might be preferred to give moreweight to the luminosity in portions of a source windows thatcorresponds in size and location to the subpixel whose luminosity isbeing determined. In fact, the line coverage arrangement discussed abovewith regard to FIGS. 17 through 19 provides such central weightingbecause its vertical line runs only through the portion of the sourceimage window that correspond to the location of the subpixel for whichits line coverage values are being determined.

Although many aspects of the invention explicitly relate to the use ofsubpixel optimization, many other aspects do not depend onsubpixel-optimization. In some such aspects of the invention forms ofanti-aliasing can be used that do not involve subpixel-optimization.Forms of anti-aliasing that do not involve subpixel optimization canallow images to appear to have a higher resolution than could beprovided in the absence of such anti-aliasing. This is particularly truefor font images. For example, fonts as small as seven pixel's per em canbe read relatively easily provided that they have the right shape, areproperly hinted, and use anti-aliasing—either with or withoutsubpixel-optimization although proper subpixel-optimization makes suchsmall fonts easier to read.

In this specification and the claims that follow, reference to a“screen”, particularly a screen on which scaled-down images, text, orweb page layouts are displayed, can normally include either wholescreens or parts of screens, such as graphic windows on screens. Forexample, the scaled down screen images referred to might be shown in awindow on a considerably larger screen, or may be shown on a portion ofa small screen that is left after space is dedicated to certaingraphical user interface elements, such as, for example, the tool barshown in FIG. 114. It should also be appreciated that certainsubpixel-optimized aspects of the invention can be used to displayimages and/or text across all or a substantial portion of a largescreen, such as to allow such a large screen to see content at a higherspatial resolution that it could with non-subpixel-optimized techniques.

Some aspects of the invention specifically relate to laying out digitalcontent at a virtual resolution and then displaying it at a scaled-downresolution. It should be appreciated that in other aspects of theinvention the images and text of the digital content could be scaleddown before layout, and then be laid out at the actual resolution theyare to be shown at.

BIT01-1NP-A-K—Innovation Outline

The following is an outline of innovations that are part of the presentinvention. The innovations are divided in to eleven innovation groups,labeled A through K. In the portion of the outline under each innovationgroup, a separate innovation is described by a heading in allcapitalized text. For some such inventions a more detailed and/oraccurate description is provided by text, most of the letters of whichare not capitalized. In the innovation outline, indentation is used toindicate the dependency of innovations, so that an innovation indentedunder another innovation in the outline is assumed to include all thefeatures of the innovations under which it is indented, in much the sameway that claims inherit limitations from claims they depend from. Thus,for example, if a given innovation recites “a method as in the parentinnovation” the innovation depends from the nearest innovation above itin the outline that is outdented (i.e., one heading level to the left)relative to the given innovation.

The innovation outline is not a claim set, but the applicant reservesthe right to file claims covering many of these innovations, either inthis application or continuations or continuations in part based uponit. The below outline is not a complete list of all the innovationscontained in this application and where the specification has disclosedinnovations not referred to in this outline, the applicants reserve theright innovations such aspects of the invention in the future.

A-Group Innovations

-   -   METHOD OF PRODUCING SUBPIXEL-OPTIMIZED IMAGE OF A SHAPE BY        ASSOCIATING A LUMINOUSITY VALUE WITH EACH SUBPIXEL OF THAT IMAGE        BOTH AS A FUNCTION OF THE PERCENT OF THE SUBPIXEL'S AREA COVERED        BY THE SHAPE, AND A COLOR BALANCING FUNCTION THAT DISTRIBUTES        COVERAGE VALUES TO NEARBY SUBPIXELS, WHERE THE PERCENT OF A        SUBPIXEL'S COVERAGE VALUE DISTRIBUTED IS A FUNCTION OF THE        PERCENT OF THAT VALUE THAT CAUSES COLOR IMBALANCE        -   1. A method of producing a subpixel-optimized bitmap of a            shape suitable for display on a subpixel addressable screen            having pixels comprised of separately-addressable,            differently-colored subpixels, said method comprising:        -   associating a luminosity value with each subpixel of the            bitmap by:        -   rasterizing the shape being represented to produce for each            given subpixel a coverage value for the area in the bitmap            corresponding to subpixel's location, which coverage value            represents the percent of the given subpixel's area in the            bitmap that is covered by the shape being represented;        -   performing a color balancing function for said plurality of            subpixels, which color balancing distributes portions of the            coverage values produced for individual subpixels by said            rasterization to nearby subpixels of different colors to            prevent color imbalance; and        -   associating a luminosity value with each subpixel            represented in said bitmap based on the coverage value            produced for each given subpixel by said raterization, as            decreased by any of said color balancing distributions from            said given subpixel's coverage value to other subpixel            coverage values and as increased by any of said color            balancing distributions to the given subpixel's coverage            value from other subpixel coverage values;        -   wherein the percent, if any, of a given subpixel's coverage            value that is distributed by said color balancing varies as            a function of the percent of said coverage value that causes            color imbalance.        -   LUMINOSITY VALUESY ARE ALPHA VALUES, SO BITMAP CAN BE USED            WITH FOREGROUND AND BACKGROUND COLORS            -   2. A method as in Innovation 1 wherein:            -   the bitmap produced by the method is an alpha-value                bitmap that can be used to create a second bitmap using                a selected foreground and background color; and            -   the luminosity value calculated for an individual                subpixel of the alpha-value bitmap is an alpha value                that determines the relative extent to which an                associated subpixel in the second bitmap has a color                determined by the subpixel's corresponding component                color value in said foreground and/or background colors.        -   ONLY DISTRIBUTES PORTION OF SUBPIXEL'S COVERAGE THAT CAUSES            IMBALANCE WITHIN ITS PIXEL            -   3. A method as in Innovation 1 wherein said color                balancing function only distributes portions of a                subpixel's coverage value that causes color imbalance                within the whole pixel of which the subpixel is part.            -   FONTS BITMAPS 10 PIXELS PER EM OR LESS AND CHARACTER                SHAPE AND ALIGNMENT HAVE BEEN SELECTED TO INCREASE                ALIGNMENT OF SHAPE BOUNDARIES WITH PIXEL BOUNDARIES                -   4. A method as in Innovation 3 wherein the shape                    represented by said subpixel-optimized bitmaps are                    character font shapes that:                -   have a size of 10 pixels per em or less; and                -   have a shape and pixel alignment selected to                    increase the degree of alignment of edges of the                    character shape with pixel boundaries of said                    bitmap.                -   FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR                    CHARACTERS HAVE A SHAPE AND PIXEL ALIGNMENT SELECTED                    TO IMPROVE READABILITY AT SUCH A SMALL SIZE                -    5. A method as in Innovation 4 wherein:                -    said subpixel-optimized font bitmaps include small                    font bitmaps having a small font size of eight                    pixels per em or less; and                -    the shapes and pixel alignment of the character                    font shapes represented by said small font bitmaps                    have been selected as a function of said small font                    size to improve the readability of said bitmaps at                    said small font size.                -    FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS                    WITHIN ADVANCE WIDTH OF 4 PIXEL COLUMNS OR LESS                -    6. A method as in Innovation 5 wherein the font                    bitmaps of said small font size represent a majority                    of characters of the Roman alphabet within an                    advance width of 4 pixel columns or less.                -    WITH X-HEIGHT GREATER THAN 4 PIXELS                -    7. A method as in Innovation 6 wherein the font                    bitmaps of said small font size represent a majority                    of lowercase letters with an x-height greater than 4                    pixels.            -   PART OF SAID FONT OUTLINE IS SUFFICIENTLY ALIGNED WITH                EDGES OF 1ST GROUP OF PIXELS THAT THERE IS NO                PERCEPTIBLE DISTRIBUTION FROM THE 1^(ST) GROUP'S                SUBPIXELS AND A PART SUFFICIENTLY UNALLIGNED WITH EDGES                OF 2^(ND) SET OF PIXELS THAT THERE IS A PERCEPTIBLE                DISTRIBUTION FROM SUBPIXELS OF THE 2^(ND) SET OF PIXELS                -   8. A method as in Innovation 3 wherein the                    subpixel-optimized bitmap is of a font shape that                    has:                -   one or more portions with edges sufficiently aligned                    with the edges of a first contiguous group of pixels                    covered by said shape that there is so little color                    imbalance within each pixel of said first group that                    said color balancing function makes no perceptible                    distributes of coverage values from the subpixels of                    said first group; and                -   one or more other portions with edges sufficiently                    unaligned with the pixel boundaries of each of a                    second set of pixels partially covered by said shape                    that there is so much color imbalance within each of                    said second set of pixels that said color balancing                    function makes a perceptible distribution of                    coverage values from the subpixels of said second                    set of pixels.            -   PORTION OF SUBPIXEL'S COVERAGE DISTRIBUTED ACROSS MORE                SUBPIXELS THAN IN PIXEL                -   9. A method as in Innovation 3 wherein said color                    balancing function distributes the portion of a                    subpixel's coverage that causes color imbalance                    within its corresponding pixel across a greater                    number of subpixels than are in a pixel.                -   DISTRIBUTED ACROSS FIVE SUBPIXELS CENTERED WITH                    SUBPIXEL ITSELF                -    10. A method as in Innovation 9 wherein:                -    each pixel has three subpixels of different colors;                    and                -    said color balancing function distributes the                    portion of a given subpixel's coverage that causes                    color imbalance within its corresponding pixel                    across a set of five successive subpixels centered                    on the given subpixel.            -   ONLY DISTRIBUTE PORTION OF SUBPIXEL'S COVERAGE VALUE                GREATER THAN MINIMUM SUBPIXEL COVERAGE WITHIN PIXEL                -   11. A method as in Innovation 3 wherein said color                    balancing function only distributes that portion of                    a given subpixel's coverage value produced by said                    rasterization that is greater than the minimum                    coverage produced by said rasterization for any                    subpixel within the given subpixel's corresponding                    whole pixel.            -   BITMAP REPRESENTS A FONT                -   12. A method as in Innovation 3 wherein the shape                    represented by the subpixel-optimized bitmap is a                    character font shape.                -   BITMAP HAS FULL PIXEL COLUMN BEFORE SUBPIXEL COLUMN                    COVERED BY LEFTMOST EDGE OF FONT SHAPE, TO ALLOW FOR                    LEFTWARD COLOR BALANCE DISTRIBUTIONS                -    13. A method as in Innovation 12 wherein:                -    pixels in the screen upon which the subpixel                    optimized bitmap are to be shown are arranged in                    rows and columns in which correspondingly colored                    subpixels are arranged in successive subpixel                    columns within each of said pixel columns;                -    the subpixel-optimized bitmap represents a font                    shape that has its leftmost edge cover all or a part                    of a first subpixel column, which first subpixel                    column is the leftmost subpixel column within a                    first whole pixel column; and                -    the subpixel-optimized bitmap has an additional                    whole pixel column to the left of said first pixel                    column that allows for leftward color balancing                    distributions of subpixel coverage values from one                    or more subpixels of said first pixel column.                -    FULL PIXEL PADDING COLUMN IN SYSTEM WHERE THERE ARE                    THREE SUBPIXELS PER PIXEL AND COLOR BALANCING                    DISTRIBUTES COVERAGE VALUES NO MORE THAN TWO                    SUBPIXELS TO LEFT                -    14. A method as in Innovation 13 wherein three                    subpixels per pixel are resepresented in said                    subpixel optimized bitmap and the color balancing                    function distributes subpixel coverage values no                    more than two subpixels to the left, so the leftmost                    subpixel column in said additional whole pixel                    column has no coverage values distributed to it.    -   METHOD OF PRODUCING SUBPIXEL-OPTIMIZED IMAGE OF A SHAPE BY        ADDING A PIXEL COVERAGE VALUE, DETERMINED AS FUNCTION OF        COVERAGE OF ONE MORE SUBPIXELS IN A PIXEL, TO LUMINANCE OF EACH        OF ITS SUBPIXELS, AND DISTRIBUTING THE DIFFERENCE BETWEEN EACH        SUBPIXEL'S COVERAGE VALUE AND ITS PIXEL'S COVERAGE VALUE BETWEEN        THE LUMINANCES OF THAT SUBPIXELS AND NEARBY SUBPIXELS, AT LEAST        SOME OF WHICH ARE IN A DIFFERENT PIXEL        -   15. A method of producing a subpixel optimized bitmap,            suitable for display on a subpixel addressed screen that has            pixels comprised of separately-addressable,            differently-colored subpixels, where said bitmap represents            a shape defined at a resolution higher than the resolution            of subpixels corresponding to the bitmap, said method            comprising:        -   determining a coverage value for each subpixel represented            in the bitmap, which coverage value represents the percent            of the given subpixel's corresponding area in the bitmap            that is covered by the shape being represented;        -   determining a pixel-wide coverage value for a given pixel as            a function of the coverage values calculated for multiple            subpixel within the given pixel;        -   adding to a luminosity value to be calculated for each            subpixel of a given pixel a value corresponding to the given            pixel's pixel-wide coverage value;        -   performing a color balancing function for each subpixel in a            given pixel that distributes a portion, if any, of said            subpixel's coverage value that causes color imbalance within            the given pixel, said function including:        -   determining a differential coverage value for each subpixel            corresponding to the difference between the subpixel's            coverage value and the given pixel's pixel-wide coverage            value;        -   distributing the differential coverage value calculated for            each given subpixel to the luminosity values being            calculated for each of a set of subpixels of different            colors in the vicinity of said given subpixel to help            balance the color imbalance caused by said differential            coverage value.        -   THE IMAGE IS OF A FONT            -   16. A method as in Innovation 15 wherein the shape of                which the subpixel-optimized image is made is a font                shape.            -   BITMAP HAS FULL PIXEL COLUMN BEFORE SUBPIXEL COLUMN                COVERED BY LEFTMOST EDGE OF FONT SHAPE, TO ALLOW FOR                LEFTWARD COLOR BALANCE DISTRIBUTIONS                -   17. A method as in Innovation 16 wherein:                -   pixels in the screen upon which the subpixel                    optimized bitmap are to be shown are arranged in                    rows and columns in which correspondingly colored                    subpixels are arranged in successive subpixel                    columns within each of said pixel columns;                -   the subpixel-optimized bitmap represents a font                    shape that has its leftmost edge cover all or a part                    of a first subpixel column, which first subpixel                    column is the leftmost subpixel column within a                    first whole pixel column; and                -   the subpixel-optimized bitmap has an additional                    whole pixel column to the left of said first pixel                    column that allows for leftward color balancing                    distributions of subpixel coverage values from one                    or more subpixels of said first pixel column.                -   FULL PIXEL PADDING COLUMN IN SYSTEM WHERE THERE ARE                    THREE SUBPIXELS PER PIXEL AND COLOR BALANCING                    DISTRIBUTES COVERAGE VALUES NO MORE THAN TWO                    SUBPIXELS TO LEFT                -    18. A method as in Innovation 17 wherein three                    subpixels per pixel are resepresented in said                    subpixel optimized bitmap and the color balancing                    function distributes subpixel coverage values no                    more than two subpixels to the left, so the leftmost                    subpixel column in said additional whole pixel                    column has no coverage values distributed to it.            -   FONTS BITMAPS 10 PIXELS PER EM OR LESS AND CHARACTER                SHAPE AND ALIGNMENT HAVE BEEN SELECTED TO INCREASE                ALIGNMENT OF SHAPE BOUNDARIES WITH PIXEL BOUNDARIES                -   19. A method as in Innovation 16 wherein the                    character font shapes represented by said                    subpixel-optimized bitmaps:                -   have a size of 10 pixels per em or less; and                -   have a shape and pixel alignment selected to                    increase the degree of alignment of edges of the                    character shape with pixel boundaries of said                    bitmap.                -   FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR                    CHARACTERS HAVE A SHAPE AND PIXEL ALIGNMENT SELECTED                    TO IMPROVE READABILITY AT SUCH A SMALL SIZE                -    20. A method as in Innovation 19 wherein:                -    said subpixel-optimized font bitmaps include small                    font bitmaps having a small font size of eight                    pixels per em or less; and                -    the character shapes represented by said small font                    bitmaps and the alignment of such shapes to the                    pixels in said small font bitmaps have been selected                    as a function of said small font size to improve the                    readability of said bitmaps at said small font size.                -    FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS                    WITHIN ADVANCE WIDTH OF 4 PIXEL COLUMNS OR LESS                -    21. A method as in Innovation 20 wherein the font                    bitmaps of said small font size represent a majority                    of characters of the Roman alphabet within an                    advance width of four pixel columns or less.                -    WITH X-HEIGHT GREATER THAN 4 PIXELS                -    22. A method as in Innovation 21 wherein the font                    bitmaps of said small font size represent a majority                    of lowercase letters with an x-height greater than                    four pixels.            -   FONT OUTLINE HAS PORTION SUFFICIENTLY ALIGNED WITH EDGES                OF 1ST GROUP OF PIXELS THAT THERE IS NO PERCEPTABL                DISTRIBUTION FROM GROUPS SUBPIXELS AND PORTION                SUFFICIENTLY UNALLIGNED WITH EDGES OF 2^(ND) SET OF                PIXELS THAT THERE IS PERCEPTABLE DISTRIBUTION FROM ITS                SUBPIXELS                -   23. A method as in Innovation 16 wherein the                    character font shape represented by said                    subpixel-optimized bitmap has:                -   one or more portions with edges sufficiently aligned                    with the edges of a first contiguous group of pixels                    covered by said shape that there is so little color                    imbalance within each pixel of said first group that                    said color balancing function makes no perceptible                    distributes of coverage values from the subpixels of                    said first group; and                -   one or more other portions with edges sufficiently                    unaligned with the pixel boundaries of each of a                    second set of pixels partially covered by said shape                    that there is so much color imbalance within each of                    said second set of pixels that said color balancing                    function makes a perceptible distribution of                    coverage values from the subpixels of said second                    set of pixels.        -   PIXEL COVERAGE VALUE CORRESPONDS TO THE MINIMUM SUBPIXEL            COVERAGE VALUE            -   24. A method as in Innovation 15 wherein:            -   said pixel-wide coverage value is the minimum coverage                value determined for a subpixel within a given pixel;                and            -   said differential coverage value determined for a                subpixel is the difference between the coverage value                determined for the subpixel and the minimum coverage                value determined for any subpixel within the given                pixel.        -   DISTRIBUTION OF A SUBPIXEL'S DIFFERENTIAL COVERAGE VALUE            DISTRIBUTES LARGEST PORTION TO SUBPIXEL ITSELF            -   25. A method as in Innovation 15 wherein said                distribution of a given subpixel's differential coverage                value to the luminosity values of each of a set of                subpixels includes distributing a larger portion of said                differential coverage value to the luminosity value                being calculated for the given subpixel than to the                luminosity values being calculated for any other single                subpixels of said set.            -   DISTRIBUTION OF A SUBPIXEL'S DIFFERENTIAL COVERAGE VALUE                IS PERFORMED USING A DISTRIBUTION FILTER                -   26. A method as in Innovation 25 wherein said                    distribution of the differential coverage value                    calculated for a given subpixel includes using a                    distribution filter that determines the portion of                    the given subpixel's differential coverage value                    that is distributed to the luminosity value of each                    different subpixel of said set.                -   DISTRIBUTION FILTER DIFFERENT FOR DIFFERENT COLOR                    SUBPIXELS                -    27. A method as in Innovation 26 wherein different                    distribution filters are used to distribute the                    differential coverage values calculated for                    subpixels of different colors.                -   AT LEAST SOME DISTRIBUTION FILTERS ARE ASYMETRICAL                -    28. A method as in Innovation 26 wherein at least                    some of said distribution filters are asymetical,                    meaning that they distribute more to the luminosity                    values being calculated for nearby subpixels on one                    side of the given subpixel than to those being                    calculated for nearby subpixels on the other side of                    said given subpixel.        -   LUMINOSITY VALUES ARE ALPHA VALUES, SO BITMAP CAN BE USED            WITH FOREGROUND AND BACKGROUND COLORS            -   29. A method as in Innovation 15 wherein:            -   the bitmap produced by the method is an alpha-value                bitmap that can be used to create a second bitmap using                a selected foreground and background color; and            -   the luminosity value calculated for an individual                subpixel of the alpha-value bitmap is an alpha value                that determines the relative extent to which an                associated subpixel in the second bitmap has a color                determined by the subpixel's corresponding component                color value in said foreground and/or background colors.        -   MAP FROM CALCULATED PIXEL COLOR VALUE DETERMINED BY            LUMINOSITY CALCULATED AFTER COLOR BALANCING FOR EACH OF ITS            SUBPIXELS INTO A SMALLER PALETTE COLOR SPACE TO FIND COLOR            TO BE ASSOCIATED WITH INDIVIDUAL PIXEL IN IMAGE            -   30. A method as in Innovation 15 wherein:            -   the luminosity values calculated for the subpixels of a                given pixel define a calculated color value which can be                any one of a first number of values;            -   each calculated color value is mapped into a                corresponding one of a second, smaller number of palette                color values; and            -   individual pixels in said image are represented by the                palette color value into which its calculated color                value has been mapped.            -   COLORS IN SMALLER PALETTE COLOR SPACE ARE SELECTED AS                FUNCTION OF FREQUENCY WITH WHICH CALCULATED COLORS OCCUR                IN MULTIPLE IMAGES CREATED BY THE METHOD.                -   31. A method as in Innovation 30 wherein a plurality                    of said palette color values have been selected as a                    function of the frequency with different ones of                    said given calculated color values occur in a                    plurality of different images created by said                    method.            -   NON-GRAY CALCULATED COLORS THAT DIFFER IN CERTAIN WAYS                FROM ANY PALETTE COLOR ARE MAPPED INTO A SUBSTANTIALLY                GRAY PALETTE COLOR                -   32. A method as in Innovation 30 wherein calculated                    color values having unequal subpixel luminosity                    values that differ in certain ways from any palette                    color are mapped into a corresponding palette color                    having equal subpixel luminosity values.    -   A METHOD OF DRAWING A SUBPIXEL-OPTIMIZED BITMAP OF FONT SHAPE        IMAGE THAT ASSOCIATES A LUMINOUSITY WITH EACH SUBPIXEL        CORRESPONDING TO COVERAGE VALUE AND POSSIBLE DISTRIBUTIONS FROM        AND TO THAT COVERAGE VALUE TO PREVENT COLOR IMBALANCE, IN WHICH        PERCENT OF DISTRIBUTION FROM A COVERAGE VALUES VARIES AS        FUNCTION OF THE PERCENT OF THAT VALUE THAT CAUSES COLOR        IMBALANCE        -   33. A method of drawing an image of character-font shape as            a subpixel-optimized bitmap on a subpixel addressable screen            having pixels comprised of separately-addressable,            differently-colored subpixels, said method comprising:        -   drawing a luminosity value for each given subpixel of the            bitmap which luminosity value corresponds to:        -   a coverage value representing the percent of the given            subpixel's corresponding area in the image covered by the            character-font shape represented by said image;        -   in the case of at least some of said subpixels, a color            balancing distribution of a percent of the given subpixel's            coverage value from said coverage value to coverage values            of nearby subpixels, including subpixels of different color,            necessary to prevent color imbalance that would result from            the difference between the given subpixel's coverage value            and the coverage values of a given set of one or more nearby            subpixels of different colors; and        -   in the case of at least some of said subpixels, such a color            balancing distribution to the given subpixel's coverage            value of a portion of coverage values from one or more            nearby subpixels;        -   wherein the percent of each given subpixel's coverage value            distributed from said coverage value by a color balancing            distribution is a function of the percent of the given            subpixel's coverage value that causes color imbalance within            a set of nearby subpixels.        -   BITMAP REPRESENTS SHAPE IN FOREGROUND ON BACKGROUND COLOR            BASED ON SUBPIXEL ALPHA VALUES            -   34. A method as in Innovation 33 wherein:            -   the bitmap represents the character-font shape in a                foreground color drawn on top of a background color and                is generated from a corresponding sub-pixel optimized                alpha-value bitmap; and            -   the luminosity value for a given subpixel of a given                pixel in the drawn bitmap is determined by a                corresponding alpha value in a corresponding pixel of                the alpha-value bitmap, which corresponding alpha value                determines the relative extent to which the given                subpixel has a luminosity determined by the subpixel's                corresponding component color value in said foreground                and/or background colors.        -   ONLY DISTRIBUTES PORTION OF SUBPIXEL'S COVERAGE THAT CAUSES            IMBALANCE WITHIN ITS PIXEL            -   35. A method as in Innovation 33 wherein said color                balancing distributions only distribute portions of a                subpixel's coverage value that causes color imbalance                within the whole pixel of which it is part.            -   PORTION OF SUBPIXEL'S COVERAGE DISTRIBUTED ACROSS MORE                SUBPIXELS THAN IN PIXEL                -   36. A method as in Innovation 35 wherein said color                    balancing distributions distribute the portion of a                    subpixel's coverage that causes color imbalance                    within its corresponding pixel across a greater                    number of subpixels than are in said pixel.                -   DISTRIBUTED ACROSS FIVE SUBPIXELS CENTERED WITH                    SUBPIXEL ITSELF                -    37. method as in Innovation 36 wherein said color                    balancing distributions distribute the portion of a                    given subpixel's coverage that causes color                    imbalance within its corresponding pixel across a                    set of five successive subpixels centered on the                    given subpixel.            -   ONLY DISTRIBUTE PORTION OF SUBPIXEL'S COVERAGE VALUE                GREATER THAN MINIMUM SUBPIXEL COVERAGE WITHIN PIXEL                -   38. A method as in Innovation 35 wherein said color                    balancing distributions only distribute that portion                    of a subpixel's coverage value that is greater than                    the minimum subpixel coverage within its                    corresponding whole pixel.            -   BITMAP HAS FULL PIXEL COLUMN BEFORE SUBPIXEL COLUMN                COVERED BY LEFTMOST EDGE OF FONT SHAPE, TO ALLOW FOR                LEFTWARD COLOR BALANCE DISTRIBUTIONS                -   39. A method as in Innovation 35 wherein:                -   pixels in the screen upon which the subpixel                    optimized bitmap are to be shown are arranged in                    rows and columns in which correspondingly colored                    subpixels are arranged in successive subpixel                    columns within each of said pixel columns;                -   the subpixel-optimized bitmap represents a font                    shape that has its leftmost edge cover all or a part                    of a first subpixel column, which first subpixel                    column is the leftmost subpixel column within a                    first whole pixel column; and                -   the subpixel-optimized bitmap has an additional                    whole pixel column to the left of said first pixel                    column that allows for leftward color balancing                    distributions of subpixel coverage values from one                    or more subpixels of said first pixel column.                -   FULL PIXEL PADDING COLUMN IN SYSTEM WHERE THERE ARE                    THREE SUBPIXELS PER PIXEL AND COLOR BALANCING                    DISTRIBUTES COVERAGE VALUES NO MORE THAN TWO                    SUBPIXELS TO LEFT                -    40. A method as in Innovation 39 wherein three                    subpixels per pixel are resepresented in said                    subpixel optimized bitmap and the color balancing                    function distributes subpixel coverage values no                    more than two subpixels to the left, so the leftmost                    subpixel column in said additional whole pixel                    column has no coverage values distributed to it.    -   METHOD OF DRAWING SUBPIXEL-OPTIMIZED BITMAP OF FONT SHAPE,        INCLUDING DRAWING FOREGROUND PIXELS WITH ALL SUBPIXELS REPRESENT        A FOREGROUND COLOR COMPONENT, DRAWING BACKGROUND PIXELS WITH ALL        SUBPIXELS REPRESENTING BACKGROUND COLOR COMPONENT, AND        INTERMEDIARY PIXELS WITH SUBPIXELS REPRESENT DIFFERENT RATIOS OF        FOREGROUND AND BACKGROUND COLOR COMPONENTS IN A MANNER THAT        ACHIEVES LOCAL COLOR BALANCE, IN WHICH SOME FOREGROUND AND        BACKGROUND PIXELS ARE ADJACENT ALONG THE DIRECTION OF SUBPIXEL        VARIATION IN SOME PORTIONS OF THE IMAGE        -   41. A method of drawing a subpixel-optimized bitmap image of            a character-font shape on a subpixel addressable screen            having a set of pixels each comprised of a sequence of            separately-addressable, differently-colored subpixels            extending on a common direction of subpixel-color variation,            said bitmap comprising:        -   drawing part of said image using one or more foreground            pixels in which each subpixel represents a corresponding            color component of a foreground color;        -   drawing part of said image using one or more background            pixels in which each subpixel represents a corresponding            color component of a background color; and        -   drawing part of said image using one or more intermediary            pixels in which:        -   differently colored subpixels of an intermediary pixel            represent different ratios of the corresponding color            components of the foreground and background color; and        -   the color values of subpixels of one or more adjacent            intermediary pixels along said direction of subpixel-color            variation are sufficiently color balanced to prevent any            easily noticed perception of a color that is not            intermediary to the foreground and background color to one            reading the character-font shape image from a sufficient            distance to not be able to distinguish between individual            pixels;        -   wherein in some parts of said bitmap image some of said            foreground and background pixels are directly adjacent to            each other in said direction of subpixel-color variation.        -   IN OTHER PARTS OF SAID IMAGE PIXELS OF SAID FIRST AND SECOND            TYPE ARE SEPARATED BY ONE OR TWO PIXELS OF THE THIRD TYPE            -   42. A method as in Innovation 41 wherein:            -   in other parts of said bitmap image some foreground and                background pixels are separated in said direction of                subpixel-color variation by one or two intermediary                pixels; and            -   the ratios of foreground to background color components                in different subpixels in said one or two intermediary                pixels vary only in an increasing manner or only in a                decreasing manner along said direction of subpixel-color                variation.        -   FOREGROUND AND BACKGROUND PIXELS, RESPECTIVELY, CORRESPOND            TO PARTS OF IMAGE TOTALLY COVERED OR TOTALLY NOT COVERED BY            FONT, INTERMEDIATE PIXELS CORRESPOND TO PARTS OF IMAGE            PARTIALLY COVERED BY FONT AND/OR PARTS IN WHICH SUBPIXELS            HELP BALANCE COLOR IMBALANCES IN ADJACENT INTERMEDIARY            PIXELS            -   43. A method as in Innovation 41 wherein:            -   foreground pixels correspond to portions of the image                totally covered by the character-font shape being                represented;            -   background pixels correspond to portions of the image                not at all covered by the character-font shape being                represented;            -   intermediate pixels correspond to:            -   portions of the image partially covered by the                character-font shape being represented; and/or            -   portions of the image in which subpixels represent a                blended ratio of foreground and background color                component to help balance a color imbalance in an                adjacent intermediary pixel.    -   MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION        -   44. A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 43; and        -   one or more processors for executing said instructions.    -   MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE MEDIA        INNOVATION        -   45. A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 43.    -   PRODUCING SUB-PIXEL OPTIMIZED IMAGE OF A SHAPE BY ASSOCIATING A        LUMINOUSITY VALUE WITH EACH SUBPIXEL OF THAT IMAGE BOTH AS A        FUNCTION THE PERCENT OF THE SUBPIXEL'S AREA WHICH IS COVERED BY        THE SHAPE, AND AS    -   A FUNCTION OF A COLOR BALANCING FUNCTION DESIGNED TO DISTRIBUTE        A PORTION OF LUMOSITY VALUES WHICH WOULD CAUSE COLOR IMBALANCE        TO OTHER NEARBY PIXELS, WHERE THE EXTENT OF DISTRIBUTION OF        LUMINOSITY VALUES IS A FUCNTION OF EXTENT TO WHICH THEY CAUSE        COLOR IMBALANCE        -   A method of producing a sub-pixel resolution representation            of a shape, which image is suitable for display on a            sub-pixel addressed screen having pixels comprised of            separately addressable differently colored sub-pixels, said            method comprising:        -   producing a scaled sub-pixel optimized image of a bitmap            image by associating a luminosity value with each subpixel            of the scaled image as a function of:        -   the percent the area of subpixel's area in the image that is            covered by the shape; and        -   a color balancing function designed to distribute a portion            of a subpixel's luminosity values which otherwise would            cause color imbalance to nearby subpixels of different            colors, where the percent of a subpixel's luminosity values            that is so distributed is a function of the percent of the            subpixel's luminosity value which causes color imbalance.        -   THE SHAPE OF WHICH SUBPIXEL OPTIMIZED IMAGE IS MADE IS A            FONT            -   A method as in the parent innovation wherein the shape                of which the subpixel optimized image is made is a font.            -   The luminosity value calculated for an individual                sub-pixel is an alpha value that determines the relative                extent to which the associated sub-pixel in an image                having a foreground and a background color will have the                component color value of the foreground color and/or of                the background color that corresponds to the sub-pixel's                color        -   LUMINOSITY VALUES ARE ALPHA VALUES, SO BITMAP CAN BE USED            WITH FOREGROUND AND BACKGROUND COLORS            -   A method as in the parent innovation wherein:            -   the sub-pixel resolution image is created to represent                an image of said shape which can be shown with a                selected foreground color and a selected background                color; and            -   the luminosity value calculated for an individual                sub-pixel is an alpha value that determines the relative                extent to which the associated sub-pixel in an image                having a foreground and a background color will have the                component color value of the foreground color and/or of                the background color that corresponds to the sub-pixel's                color.    -   PRODUCING SUB-PIXEL OPTIMIZED IMAGE OF A SHAPE BY ADDING A PIXEL        COVERAGE VALUE, DETERMINED AS FUNCTION OF COVERAGE OF ONE MORE        SUB-PIXELS IN A PIXEL, TO LUMINANCE OF EACH OF ITS SUB-PIXELS,        AND DISTRIBUTING THE DIFFERENCE BETWEEN EACH SUB-PIXEL'S        COVERAGE VALUE AND ITS PIXEL'S COVERAGE VALUE BETWEEN THE        LUMINANCES OF THAT SUB-PIXELS AND NEARBY SUB-PIXELS, AT LEAST        SOME OF WHICH ARE IN A DIFFERENT PIXEL        -   Determining a coverage value for each sub-pixel with given            pixel in the image area, which subpixel coverage value            corresponds to the percentage of the sub-pixel which is            covered by said shape;        -   determining a pixel coverage value for the given pixel,            which is a function of the coverage values calculated for            one or more of the sub-pixel with the given pixel;        -   adding to a luminosity value calculated for each sub-pixel            of the given pixel a value corresponding to the given            pixel's coverage value;        -   for each sub-pixel in the given pixel:        -   determining a differential coverage value for each sub-pixel            corresponding to the difference between the sub-pixel's            coverage value and the given pixel's coverage value;        -   adding to the luminosity value calculated for each given            sub-pixel and one or more nearby subpixels a value            corresponding to a portion of the given sub-pixel's            differential coverage value, where at least some of said            nearby sup-pixels are located outside of the given            sub-pixel's pixel.        -   THE SHAPE OF WHICH SUBPIXEL OPTIMIZED IMAGE IS MADE IS A            FONT            -   A method as in the parent innovation wherein the shape                of which the subpixel optimized image is made is a font.        -   PIXEL COVERAGE VALUE CORRESPONDS TO THE MINIMUM SUB-PIXEL            COVERAGE VALUE        -   DISTRIBUTION OF A SUB-PIXEL'S DIFFERENTIAL COVERAGE VALUE            DISTRIBUTES THE MOST VALUE TO THE SUB-PIXEL ITSELF            -   A method as in the parent innovation wherein said adding                to the luminosity value calculated for each given                sub-pixel and one or more nearby sub-pixels includes                adding a larger value to the given sub-pixel than to                said nearby sub-pixels.        -   DISTRIBUTION OF A SUB-PIXEL'S DIFFERENTIAL COVERAGE VALUE IS            PERFORMED USING A DISTRIBUTION FILTER            -   A method as in the parent innovation wherein said adding                to the luminosity value calculated for each given                sub-pixel and one or more nearby sub-pixels includes                using a distribution filter that determines the size of                the portion of the given sub-pixel's differential                coverage value for which a corresponding value is added                to the luminosity value calculated for the give                sub-pixel and each of said nearby subpixels.            -   DISTRIBUTION FILTER IS DIFFERENT FOR SUBPIXEL'S OF                DIFFERENT COLORS                -   A method as in the parent innovation wherein                    different distribution filters are used for                    sub-pixels of different colors.            -   AT LEAST SOME DISTRIBUTION FILTERS ARE ASYMETRICAL                -   A method as in the parent innovation wherein at                    least some of said distribution filters are                    asymmetrical, meaning that they distribute more to                    the luminosity values of nearby subpixels on one                    side of the given subpixel than to those of nearby                    subpixels on the other side of said given sub-pixel.        -   LUMINOSITY VALUES ARE ALPHA VALUES, SO BITMAP CAN BE USED            WITH FOREGROUND AND BACKGROUND COLORS            -   A method as in the parent innovation wherein:            -   the sub-pixel resolution image is created to represent                an image of said shape which can be shown with a                selected foreground color and a selected background                color; and            -   the luminosity value calculated for an individual                sub-pixel is an alpha value that determines the relative                extent to which the associated sub-pixel in an image                having a foreground and a background color will have the                component color value of the foreground color and/or of                the background color that corresponds to the sub-pixel's                color.        -   MAP FROM CALCULATED PIXEL COLOR VALUE DETERMINED BY            LUMINOSITY CALCULATED FOR EACH OF ITS SUBPIXELS INTO A            SMALLER PALETTE COLOR SPACE TO FIND COLOR TO BE ASSOCIATED            WITH INDIVIDUAL PIXEL IN IMAGE            -   A method as in the parent innovation wherein:            -   the luminosity values calculated for each sub-pixel of a                given pixel are used to define a calculated color value                which can be any one of a first number of values;            -   each calculated color value is mapped into a                corresponding one of a second number of palette color                values, where said second number is smaller than said                first number; and            -   individual pixels in said image are represented by a                palette color value into which its calculated color                value has been mapped.            -   COLORS IN SMALLER PALETTE COLOR SPACE ARE SELECTED AS                FUNCTION OF FREQUENCY WITH WHICH CALCULATED COLORS OCCUR                IN MULTIPLE IMAGES CREATED BY THE METHOD.                -   A method as in the parent innovation wherein a                    plurality of said palette color values have been                    selected as a function of the frequency with which                    given calculated color values occur in a plurality                    of different images created by said method.            -   NON-GRAY CALCULATED COLORS THAT DIFFER IN CERTAIN WAYS                FROM ANY PALETTE COLOR ARE MAPPED INTO A SUBSTANTIALLY                GRAY PALETTE COLOR                -   A method as in the parent innovation wherein                    non-gray calculated colors that differ in certain                    ways from any palette color are mapped into a                    substantially gray palette color.                -    THE METHOD OF DISPLAYING FONT CREATED BY THE ABOVE                    PROCESS    -   THE METHOD OF DOWNLOADING FONTS CREATED BY THE ABOVE PROCESS        B-Group Innovations    -   ACCESSING DIGITAL CONTENT REPRESENTED BY MARK-UP LANGUAGE        INCLUDING IMAGES, SCALING DOWN IMAGES FROM HIGHER RESOLUTION TO        A LOWER RESOLUTION IN SUBPIXEL-OPTIMIZED MANNER, DISPLAYING        CONTENT ON SCREEN WITH FORMAT PARTIALLY DICTATED BY TAGS IN        CONTENT AND WITH SCALED DOWN IMAGES        -   1. A method of displaying—on a subpixel addressable screen            having pixels comprised of separately-addressable,            differently-colored subpixels—digital content including text            and/or images represented by a mark-up language including            tags that dictate the format in which such content is to be            displayed and tags that identify images to be displayed as            part of said content, said method comprising:        -   accessing said digital content, including accessing one or            more images, from a device in which said content is stored            or is generated dynamically;        -   performing a down-scaling and subpixed-optimization process            in which:        -   each of said accessed images is a source image for the            process;        -   said process produces from each such source image a            corresponding scaled-down, subpixel optimized image;        -   each such scaled image represents the source image from            which it has been produced at a lower pixel resolution than            the pixel resolution of said source image;        -   each such scaled image also represents said source image in            a subpixel-optimized manner by causing the luminosity            associated with each subpixel within a given pixel of the            scaled image to represent the luminosity of the subpixel's            color in a portion of the source image that differs for each            subpixel as a function of the subpixel's different position            in the given pixel; and        -   displaying said accessed digital content on said            subpixel-addressable screen in a format determined at least            in part by one or more tag in said content, including, as            part of said formatted display, displaying said scaled            images in a subpixel-optimized manner on said screen.        -   DIGITAL CONTENT INCLUDES STRINGS OF TEXT CHARACTERS AND            DISPLAY OF THE CONTENT ALSO INCLUDES COMPOSING A BITMAP            PATTERN TO REPRESENT THE SUCCESSIVE INDIVIDUAL CHARACTERS OF            SUCH A STRING FROM A SUCCESSION OF CORRESPONDING FONT            BITMAPS            -   2. A method as in Innovation 1 wherein:            -   said accessed digital content includes one or more                strings of displayable text characters; and            -   said display of said the digital content also includes                drawing a string bitmap on said screen to represent said                string, which string bitmap is composed from a                succession of separate font bitmaps each selected to                correspond to an individual character in the text of                said string.            -   FONTS BITMAPS ARE ANTI-ALIASED, HAVE FONT SIZE OF 10                PIXEL'S PER EM OR LESS, AND CHARACTER SHAPE AND                ALIGNMENT HAVE BEEN SELECTED TO INCREASE ALIGNMENT OF                SHAPE BOUNDARIES WITH PIXEL BOUNDARIES                -   3. A method as in Innovation 2 wherein one or more                    of said single line strings are represented by font                    bitmaps that:                -   have a font size of 10 pixels per em or less;                -   are anti-aliased font bitmaps that assign a color                    value to a given screen pixel as a graded function                    of a coverage value representing the percent of the                    given pixel that is covered by a character shape                    being represented by the font bitmap; and                -   have the shape and pixel alignment of the character                    represented by such a font bitmap selected to                    increase the degree of alignment of edges of the                    character shape with pixel boundaries of said                    bitmap.                -   ANTI-ALIASED FONTS ARE SUBPIXEL OPTIMIZED USING                    DIFFERENT SUBPIXEL OPTIMIZATION METHOD THAN                    IMAGES—LUMINOSITY OF SCALED IMAGE SUBPIXEL REPRESENT                    THE INTENSITY OF SUBPIXEL'S COLOR IN CORRESPONDING                    PART OF SOURCE IMAGE, LUMINOSITY OF FONT IMAGE                    SUBPIXEL REPRESENTS EXTENT SUBPIXEL IS COVERED BY                    FONT SHAPE AND, IN SOME SUBPIXELS, A COLOR BALANCING                    FUNCTION                -    4. A method as in innovation 3 wherein:                -    said font bitmaps are anti-aliased because they are                    subpixel-optimized images of character-font shape;                -    said subpixel-optimized font images are                    subpixel-optimized in a different manner than the                    scaled images in that:                -    the luminosity assigned to each given subpixel of a                    pixel in one of said scaled images represents the                    intensity of the given subpixel's corresponding                    color in a portion of the source image having a                    position corresponding to the position of the given                    subpixel in the scaled image; and                -    the luminosity assigned to each given subpixel in                    one of said font bitmaps is a function of:                -    a coverage value representing the percent of the                    given subpixel's area in the font bitmap that is                    covered by the character-font shape represented by                    the bitmap; and                -    for at least some subpixels of said font bitmaps, a                    color balancing distribution between the given                    subpixel's coverage value and coverage values of                    other nearby subpixels that reduces perceptible                    color imbalances that would result from differences                    between coverage values of nearby subpixels of                    different colors in the absence of such color                    balancing distributions.                -    PERCENT OF SUBPIXEL'S LUMINOSITY DISTRIBUTED IS                    FUNCTION OF PERCENT OF THAT VALUE WHICH CAUSES COLOR                    IMBALANCE WITHIN A PIXEL                -    5. A method as in Innovation 4 wherein the percent                    of a given font bitmap subpixel's luminosity values                    that is distributed to achieve color balance is a                    function of the percent of the given subpixel's                    luminosity value that causes color imbalance within                    pixel of which the given subpixel is part.                -   FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR                    CHARACTERS HAVE A SHAPE AND PIXEL ALIGNMENT SELECTED                    TO IMPROVE READABILITY AT SUCH A SMALL SIZE                -    6. A method as in Innovation 3 wherein:                -    said anti-aliased font bitmaps include small font                    bitmaps having a small font size of eight pixels per                    em or less; and                -    the shape and pixel alignment of the character                    represented by such a small font bitmap have been                    selected to increase the degree of alignment of                    edges of the character shape with pixel boundaries                    of said small bitmap.                -    FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS                    WITHIN ADVANCE WIDTH OF 4 PIXEL COLUMNS OR LESS                -    7. A method as in Innovation 6 wherein the font                    bitmaps of said small font size represent a majority                    of characters of the Roman alphabet within an                    advance width of 4 pixel columns or less.                -    WITH X-HEIGHT GREATER THAN 4 PIXELS                -    8. A method as in Innovation 7 wherein the font                    bitmaps of said small font size represent a majority                    of lowercase letters with an x-height greater than 4                    pixels.        -   DIGITAL CONTENT IS ACCESSED OVER A COMPUTER NETWORK            -   9. A method as in Innovation 1 wherein said accessing of                said digital content is performed over an computer                network.            -   NETWORK IS THE INTERNET                -   10. A method as in Innovation 9 wherein said                    accessing of said digital content is performed over                    the Intenet.        -   THE DIGITAL CONTENT INCLUDES WEB PAGES            -   11. A method as in Innovation 1 wherein said digital                content includes web pages.        -   IMAGES ARE ACCESSED IN RESPONSE TO A BROWSER REQUEST AND            THEN DISPLAYED ON THE BROWSER            -   12. A method as in Innovation 1 wherein:            -   said screen is part of a browser computer capable of                browsing digital content;            -   the browser computer includes browser programming that                responds to user input requesting a given portion of                digital content by requesting that content from a                another entity, either a storage device, another                computer, or other programming running on the browser                computer;            -   said accessing of said digital content is performed in                response to the request from the browser programming;                and            -   said display of said accessed digital content, including                said scaled images, is performed on the screen of said                browser computer.            -   REQUESTED FROM SERVER OVER NETWORK, DIGITAL CONTENT IS                READ OR GENERATED BY ONE OR MORE SERVERS, IMAGES ARE                SCALED DOWN BY SERVER, AND DIGITAL CONTENT IS DOWNLOADED                FOR DISPLAY ON BROWSER                -   13. A method as in Innovation 12 wherein:                -   said user request is communicated over a computer                    network from said browser computer to one or more                    servers;                -   the digital content is accessed by being read from                    memory or dynamically generated by one or more of                    said servers;                -   said down-scaling and subpixel-optimization of said                    source images is performed by one or more of said                    servers; and                -   said digital content, including said scaled images,                    is downloaded over said computer network to said                    browser, which then performs said display of the                    digital content.            -   SCALED DOWN BY PROXY SERVER BETWEEN BROWSER AND THE                SERVER SERVING THE IMAGE                -   14. A method as in Innovation 12 wherein:                -   said browser computer communicates said user request                    over a computer network to a proxy server;                -   said proxy server communicates said user request                    over a computer network to one or more servers that                    store or dynamically generate said digital content,                    including said source images;                -   said one or more servers sends said source image to                    said proxy server;                -   said scaling down of said source images is performed                    by said proxy server; and                -   the proxy server downloads the digital content,                    including said scaled images to said browser, which                    then perform said display of the digital content.            -   IMAGES SCALED DOWN BY THE BROWSER                -   15. A method as in Innovation 12 wherein said                    down-scaling and subpixel-optimizatin of said source                    images is performed by said browser computer.            -   BROWSER ALLOWS USER TO SELECT SCALE FACTOR AND IMAGES                ARE SCALED AND SUBPIXEL OPTIMIZATION TO THAT SIZE                -   16. A method as in Innovation 12 further including:                -   allowing a user of the browser computer to select                    one of a plurality of scale factors; and                -   said down-scaling and subpixel-optimizing produces                    one or more scaled, subpixel-optimized images that                    each have a pixel size relative to the respective                    source image that is selected as a function of said                    user selected scale factor.                -   DIGITAL CONTENT INCLUDES STRINGS OF TEXT CHARACTERS                    AND DISPLAY OF THE CONTENT ALSO INCLUDES COMPOSING A                    BITMAP PATTERN TO REPRESENT THE SUCCESSIVE                    INDIVIDUAL CHARACTERS OF SUCH A STRING FROM A                    SUCCESSION OF CORRESPONDING FONT BITMAPS, AND THE                    SIZE OF SAID FONT BITMAPS HAS BEEN SELECTED TO                    REFLECT THE REDUCTION IN PIXEL RESOLUTION OF SAID                    IMAGES                -    17. A method as in Innovation 16 wherein:                -    said accessed digital content also includes one or                    more strings of text characters; and                -    said display of said the digital content also                    includes drawing a string bitmap on said screen to                    represent said string, which string bitmap is                    composed from a succession of separate font bitmaps                    each selected to correspond to an individual                    character in the text of said string, and                -    the size of said font bitmaps varies as a function                    of said user selected scale factor.                -   USER SELECTED SCALE FACTOR IS COMMUNICATED UP TO                    REMOTE SCALING PROCESS, WHICH DOES SCALING                -    18. A method as in innovation 16 wherein:                -    said other entity from which said browser                    programming requests said digital content is one or                    more remote computers that said browser programming                    communicates said request to over a computer                    network;                -    said user selected scale factor is also                    communicated from said browser programming over said                    computer network to one or more of said remote                    computers; and                -    said scaling down and subpixel optimizing of said                    source images is performed on one or more of said                    remote computers at a scale factor that varies as a                    function of said user selected scale factor                    communicated over said network.    -   PRODUCING SUBPIXEL OPTIMIZED DISPLAY IMAGE BY CALCULATING        LUMINOSITY OF EACH SUBPIXEL AS A FUNCTION OF THE LENGTH OF A        PLURALITY OF COVERAGE LINES IN A UNIQUE WINDOW IN A HIGHER        RESOLUTION SOURCE IMAGE ASSOCIATED WITH THE SUBPIXEL THAT ARE        COVERED BY EACH OF ONE OR MORE HIGHER RESOLUTION SOURCE IMAGE        PIXELS AND THE LUMINOSITY, IN THE SUBPIXEL'S COLOR, OF EACH SUCH        SOURCE IMAGE PIXEL        -   19. A method of producing a subpixel-optimized display image            to represent a higher resolution source image, which display            image is suitable for display on a subpixel addressable            screen having pixels comprised of separately-addressable,            differently-colored subpixels, said method comprising:        -   determining the luminosity of each given subpixel in a given            pixel of said display image by:        -   defining a plurality of coverage lines within a window in            said source image having a position relative to the source            image corresponding to the given subpixel's position            relative to the display image, with the position of            different source image windows associated with different            subpixels of a given display image pixel differing as a            function of the different positions of said subpixels within            the given display image pixel;        -   determining which source image pixels overlaps each of said            coverage lines within the given subpixel's source image            window;        -   determining what length of each of said coverage lines is            overlapped by each such overlapping source image pixel;        -   determining the luminosity of the given subpixel as a            function of the length of each coverage line overlapped by            each such overlapping source image pixel and the respective            luminosity, in the given subpixel's color, of each such            overlapping source image pixel.        -   AT LEAST TWO NON-PARALLEL LINE COVERAGE LINES ASSOCIATED            WITH EACH SUBPIXEL            -   20. A method as in Innovation 19 wherein the coverage                lines associated with a given subpixel include at least                two coverage lines that run in non-parallel directions                on said subpixel's source image window.        -   A SUBPIXEL'S SOURCE IMAGE WINDOW HAS A SIZE RELATIVE TO THE            SOURCE IMAGE CORRESPONDING TO THE SIZE OF A PIXEL IN THE            DISPLAY IMAGE            -   21. A method as in Innovation 19 wherein the source                image window associated with each given subpixel has a                size relative to the source image corresponding to the                size of a whole pixel relative to said display image.    -   PRODUCING SUBPIXEL OPTIMIZED DISPLAY IMAGE OF A SOURCE IMAGE BY        ASSOCIATING A LUMINOUSITY WITH EACH SUBPIXEL BOTH AS A FUNCTION        OF THE AVERAGE PIXEL LUMINOSITY OF SOURCE IMAGE PIXELS IN        SUBPIXEL'S SOURCE IMAGE WINDOW AND PERCENT OF THAT WINDOW        COVERED BY EACH SUCH SOURCE IMAGE PIXEL, AND AS A FUNCTION OF A        COLOR BALANCING DISTRIBUTION OF SUBPIXEL LUMOSITY VALUES TO        NEARBY SUBPIXELS TO REDUCE COLOR IMBALANCE        -   22. A method of producing a subpixel-optimized display image            to represent a higher resolution source image, which display            image is suitable for display on a subpixel addressable            screen having pixels comprised of separately-addressable,            differently colored supixels, said method comprising:        -   defining a window in said source image having a position            relative to the source image corresponding to the given            subpixel's position relative to the display image, with the            position of different source image windows associated with            different subpixels of a given display image pixel differing            as a function of the different positions of said subpixels            within the given display image pixel;        -   determining the luminosity of each given subpixel in a pixel            of said display image as a function of:        -   the whole pixel luminosity of each of one or more source            image pixels that overlaps the given subpixel's source image            window;        -   the percent of the given subpixel's source image window            overlapped by each such overlapping source image pixel; and        -   a color balancing function that distributes subpixel            luminosity values between nearby subpixels in the display            image to reduce color imbalance.        -   SOURCE IMAGE IS A GRAY SCALE IMAGE            -   23. A method as in innovation 22 wherein the source                image is a grayscale image.        -   SOURCE IMAGE IS A COLOR IMAGE            -   24. A method as in innovation 22 wherein the source                image is a color image, and the whole pixel luminosity                value associated with each source image pixel is a                function of the average of the source image pixel's                luminosity values over all of the source image pixel's                different component colors.        -   EXTENT OF DISTRIBUTION OF LUMINOSITY VALUES IS A FUNCTION OF            EXTENT TO WHICH THEY CAUSE COLOR IMBALANCE WITHIN A PIXEL            -   25. A method as in Innovation 22 wherein the percent, if                any, of a given subpixel's luminosity value that is                distributed by said color balancing varies as a function                of the percent of said coverage value that causes color                imbalance within the pixel of which the given subpixel                is part.        -   SIZE OF SOURCE IMAGE WINDOW CORRESPONDS TO SIZE OF SUBPIXEL            -   26. A method as in Innovation 22 wherein a source image                window has a size relative to the source image                corresponding to the size of a subpixel relative to the                display image.            -   CALCULATE LUMINOSITY OF EACH SUBPIXEL AS A FUNCTION OF                THE LENGTH OF A PLURALITY OF COVERAGE LINES IN SOURCE                IMAGE WINDOW COVERED BY EACH OF ONE OR MORE SOURCE IMAGE                PIXELS AND THE WHOLE PIXEL LUMINOSITY OF EACH SUCH                SOURCE IMAGE PIXEL                -   27. A method as in Innovation 26 wherein:                -   a plurality of coverage lines are defined within the                    given subpixel's source image window;                -   the luminosity of the given subpixel is determined                    by:                -   determining which source image pixels overlaps each                    of said coverage lines within the given subpixel's                    source image window;                -   determining what length of each of said coverage                    lines is overlapped by each such overlapping source                    image pixel; and                -   determining the luminosity of the given subpixel as                    a function of the length of each coverage line                    overlappled by each such overlapping source image                    pixel and the respective whole pixel luminosity of                    each such overlapping source image pixel.            -   CALCULATING LUMINOSITY OF EACH SUBPIXEL AS A FUNCTION OF                THE AREA OF SOURCE IMAGE WINDOW COVERED BY EACH OF ONE                OR MORE SOURCE IMAGE PIXELS AND THE LUMINOSITY, IN THE                SUBPIXEL'S COLOR, OF EACH SUCH SOURCE IMAGE PIXEL                -   28. A method as in Innovation 26 wherein:                -   a plurality of coverage lines are defined within the                    given subpixel's source image window;                -   the luminosity of the given subpixel is determined                    by:                -   determining which source image pixels overlaps the                    given supixel's source image window;                -   determining what area of the given subpixel's source                    image window is overlapped by each such overlapping                    source image pixel; and                -   determining the luminosity of the given subpixel as                    a function of the area of the source image window                    overlappled by each such overlapping source image                    pixel and the respective whole pixel luminosity of                    each such overlapping source image pixel.    -   MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION        -   29. A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 28; and        -   one or more processors for executing said instructions.    -   MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE MEDIA        INNOVATION        -   30. A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 28.    -   ACCESSING DIGITAL CONTENT REPRESENTED BY MARK-UP LANGUAGE,        INCLUDING IMAGES, AND DISPLAYING IMAGES IN A SUB-PIXEL OPTIMIZED        FORM        -   Accessing said digital content including said images from a            device in which it is stored or from programming which            generates it dynamically; and        -   displaying on said screen one or more of said accessed            images at a first pixel scale in which the luminosity of            each differently colored subpixel of a given pixel is            derived from a different area of the same image at a second,            higher resolution, pixel scale.        -   DIGITAL CONTENT IS ACCESSED OF A COMPUTER NETWORK            -   A method as in the parent innovation wherein said                accessing of said digital content is performed over a                computer network.            -   CONTENT ACCESSED OVER THE INTERNET                -   A method as in the parent innovation wherein said                    accessing of said digital content is performed over                    the Internet.        -   THE DIGITAL CONTENT INCLUDES WEB PAGES            -   A method as in the parent innovation wherein said                digital content includes web pages.        -   SCALED-DOWN IMAGES ARE CREATED DYNAMICALLY IN RESPONSE TO            BROWSER REQUESTS            -   A method as in the parent innovation wherein:            -   said screen is part of a browser computer capable of                browsing digital content;            -   the browser computer includes browser programming which                responds to user input requesting a given portion of                digital content by requesting that content from another                entity, either a storage device, another computer, or                other programming running on the browser computer;            -   in response to the request from the browser programming,                the digital content is read from memory or dynamically                generated at a resolution higher than said first scale;            -   after the image has been read from memory or dynamically                generated in response to said user request, the image is                scaled down to said first scale and the luminosities of                differently colored sub-pixels are derived from a                different area of the same image at the second, higher                resolution, scale.            -   SCALED DOWN BY SERVER SERVING THE SCALED DOWN WEB                CONTENT                -   A method as in the parent innovation wherein:                -   the image is read from memory or dynamically                    generated on a server computer system;                -   said scaling down of an image to said first scale is                    performed the server computer system; and                -   said scaled down image is downloaded to said                    browser, which then displays the scaled down image.            -   SCALED DOWN BY PROXY SERVER WITH IS INTERMEDIARY BETWEEN                BROWSER AND THE SERVER SERVING THE CONTENT                -   A method as in the parent innovation wherein:                -   said browser computer communicates said user request                    over a computer network to a proxy server;                -   said proxy server computer communicates said user                    request over an internetwork to a server computer                    system which stores or dynamically generates an                    image to be read;                -   said server computer system sends one of said images                    to said proxy server;                -   said scaling down of said image to said first scale                    is performed by said proxy server; and                -   the proxy server downloads the scaled down image to                    said browser; which then displays the scaled down                    image.            -   SCALED DOWN BY THE BROWSER                -   A method as in the parent innovation wherein said                    scaling down of an image to said first scale is                    performed by said browser computer, which then                    displays the scaled down image.            -   BROWSER ALLOWS USER TO SELECT SCALE FACTOR AND IMAGES                ARE DYNAMICALLY SCALED WITH SUBPIXEL OPTIMIZATION TO                THAT SIZE                -   A method as in the parent innovation further                    including:                -   allowing a user of the browser computer to select                    one from a plurality of scale factors;                -   communicating said selected scale factor to said                    process which scales down an image read from                    storage; and                -   causing said scaling process to scale down and                    subpixel optimize said image by a horizontal and                    vertical scale factor which varies as a function of                    said selected scale factor.                -   USER SELECTED SCALE FACTOR IS COMMUNICATED UP TO                    REMOTE SCALING PROCESS, WHICH DOES SCALING                -    said server computer is a remote computer relative                    to said browser; and                -    said scaling process is on a remote computer.                -   USER CAN VIEW IMAGES AT ONE SCALE AND SELECTED TO                    THEN VIEW THEM AT ANOTHER SCALE                -    A method as in the parent innovation wherein the                    allowing of the user to select from one of a                    plurality of scale factors can be performed after a                    given image has been read from storage or                    dynamically generated, scaled down to said first                    scale and subpixel optimized, and displayed, so as                    to cause the given image to be scaled, subpixel                    optimized, and displayed at a second, different                    scale factor.        -   USES CONTINUOUS COVERAGE FUNCTION TO DETERMINE LUMINOSITY OF            EACH SUB-PIXEL            -   A method as in the parent innovation wherein the                luminosity of each differently colored sub-pixel of a                given pixel is determined by:            -   defining for the sub-pixel a plurality of coverage lines                which fit within a window in a higher resolution                representation of said image, which window is different                for each sub-pixel of a given pixel;            -   calculating the length of each coverage line which                corresponds to the given pixel in said higher resolution                image;            -   determining the luminosity of the sub-pixel as a                function of the length of each coverage line which                corresponds to each higher resolution pixel and the                respective luminosity in the sub-pixel's color of that                higher resolution image pixel.            -   USER INTERFACE ALLOWS USER TO SELECT SCALING FACTOR, AND                IMAGES IS SCALED TO THAT FACTOR                -   A method as in the parent innovation further                    including:                -   allowing a user of the browser computer to select                    one from a plurality of scale factors;                -   communicating said selected scale factor to said                    process which scales down an image; and                -   causing said scaling process to scale down said                    image by a horizontal and vertical scale factor                    which varies as a function of said selected scale                    factor.                -   CAN SELECT SCALE AT NON-INTEGER RATIO OF SCREEN SIZE                -    A method as in the parent innovation further                    including:                -    allowing a user of the browser computer to select                    one from a plurality of scale factors which include                    one or more scale factors which are non-integer                    ratios of the screen size;                -    communicating said selected scale factor to said                    process which scales down an image; and                -    causing said scaling process to scale down said                    image by a horizontal and vertical scale factor                    which varies as a function of said selected scale                    factor.        -   USER ABLE TO SELECT BETWEEN COLOR AND POSITION ACCURACY IN            SCALED IMAGES            -   A method as in the parent innovation further including:            -   allowing a user to select from a plurality of trade-offs                between color accuracy and positional accuracy in said                scaled images;            -   communicating said selected color/positional accuracy                selection to said process which scales down an image;                and            -   causing said scaling process to scale down said image by                a method which varies the portion of an image which is                used to determine the luminosity of individual subpixels                as a function of the user selected color/positional                accuracy selection.            -   ONE SELECTION TREATS A SOURCE IMAGE MORE AS GRAYSCALE                IMAGE AND ANOTHER SELECTION TREATS A SOURCE IMAGE MORE                AS HAVING ITS OWN COLORS, AND SUBPIXEL'S LUMINOSITY IN                SCALED IMAGE OF MORE GRAYSCALE IMAGE IS BASED MORE ON                THE LUMINOSITY OF THE PORTION OF THE SOURCE IMAGE                CORRESPONDING TO THE SUBPIXEL'S OWN AREA THAN IN SCALED                IMAGE OF THE MORE COLOR IMAGE.                -   A method as in the parent innovation further                    wherein:                -   the source image is a color image;                -   one of said user selections is between a                    more-grayscale selection and one is a less-grayscale                    selection;                -   when the more-grayscale selection is made the scaled                    image is calculated from a set of pixel color values                    in which the values of individual pixels' different                    color components have been adjusted toward the                    average of those color component values for each                    such individual pixel;                -   when the less-grayscale selection is made the scaled                    image is calculated from a set of pixel color values                    in which the values of individual pixels different                    color components have been less adjusted toward the                    average of those color component values for each                    such individual pixel; and                -   individual subpixel luminosity values in the scaled                    image produced in response to the more-grayscale                    selection are based more on the average whole pixel                    luminosities in the portion of the source image                    corresponding to the subpixel's own area than in                    scaled images produced in response to the                    less-grayscale selection, in which the luminosity                    value of individual subpixels are based more on the                    luminosity of the subpixel's own color value in a                    pixel in a larger area of the source image.    -   PRODUCING SUB-PIXEL OPTIMIZED IMAGE BY CALCULATING LUMINOSITY OF        EACH SUB-PIXEL OF A GIVEN COLOR AS A FUNCTION OF THE LENGTH OF A        PLURALITY OF COVERAGE LINE ASSOCIATED WITH THE SUB-PIXEL WHICH        ARE COVERED BY EACH OF ONE OR MORE PIXELS OF A HIGHER RESOLUTION        VERSION OF THE IMAGE AND THE LUMINOSITY OF THE SUB-PIXEL'S COLOR        IN EACH SUCH HIGH RES. PIXEL        -   A method of producing a sub-pixel resolution representation            of an image suitable for display on a sub-pixel addressed            screen having pixels comprised of separately addressable            differently colored sub-pixels, said method comprising:        -   for each sub-pixel in a given pixel in said subpixel            resolution representation determining the luminosity of that            sub-pixel by:        -   defining for the sub-pixel a plurality of coverage lines            which fit within a window in a higher resolution            representation of said image, which window is different for            each sub-pixel of a given pixel;        -   calculating the length of each coverage line which            corresponds to the given pixel in said higher resolution            image; and        -   determining the luminosity of the sub-pixel as a function of            the length of each coverage line which corresponds to each            higher resolution pixel and the respective luminosity in the            sub-pixel's color of that higher resolution image pixel.        -   SUB PIXEL'S VALUE IS DERIVED FROM AT LEAST TWO NON-PARALLEL            LINE COVERAGE LINES            -   A method as in the parent innovation wherein the                coverage lines associated with a given sub-pixel include                at least two coverage lines which run in non-parallel                directions on said sub-pixel's window.    -   PRODUCING SUB-PIXEL OPTIMIZED IMAGE BY CALCULATING LUMINOSITY OF        EACH SUB-PIXEL OF A GIVEN COLOR AS A FUNCTION OF THE AREA AND        THE LUMINOSITY OF THE SUBPIXEL'S COLOR OF EACH PIXEL IN A HIGHER        RESOLUTION VERSION OF THE IMAGE THAT FITS WITHIN A UNIQUE WINDOW        ON THE HIGH RES. IMAGE ASSOCIATED WITH THE SUB-PIXEL        -   A method of producing a sub-pixel resolution representation            of an image suitable for display on a sub-pixel addressed            screen having pixels comprised of separately addressable            differently colored sub-pixels, said method comprising:        -   for each sub-pixel in a given pixel in said subpixel            resolution representation determining the luminosity of that            sub-pixel by:        -   defining for the sub-pixel a window in a higher resolution            representation of said image, which window is different for            each sub-pixel of a given pixel;        -   calculating the area of each pixel in said higher resolution            image which totally or partially fits within the sub-pixel's            window; and        -   determining the luminosity of the sub-pixel as a function of            the included area calculated for each such higher resolution            image pixel and the respective luminosity in the sub-pixel's            color of that high resolution image pixel.        -   A SUB-PIXEL'S ASSOCIATED WINDOW IN THE HIGH-RES. IMAGE HAS A            SIZE CORRESPONDING TO THE PORTION OF THE HIGH RESOLUTION            IMAGE CORRESPONDING TO THE SUB-PIXEL'S PIXEL AND A LOCATION            CENTERED AT THE PORTION OF THE HIGH-RES. IMAGE CORRESPONDING            TO THE CENTER OF SAID SUB-PIXEL            -   A method as in the parent innovation wherein the window                associated with each subpixel in the higher resolution                image has a size equal to the portion of the higher                resolution image corresponding to the subpixel's pixel                and a center at the portion of the higher resolution                image that corresponds to the center of the sub-pixel.    -   PRODUCING SUB-PIXEL OPTIMIZED IMAGE OF A BITMAP IMAGE BY        ASSOCIATING A LUMINOUSITY VALUE WITH EACH SUBPIXEL BOTH AS A        FUNCTION OF THE WHOLE PIXEL LUMINOSITY OF THE ONE OR MORE PIXELS        IN THE SOURCE IMAGE WHICH COVER A SOURCE IMAGE WINDOW        CORRESPONDING TO THE AREA OF THE SUBPIXEL AND OF THE PERCENT OF        THAT WINDOW COVERED BY EACH SUCH SOURCE IMAGE PIXELS AND AS A        FUNCTION OF A COLOR BALANCING FUNCTION DESIGNED TO DISTRIBUTE A        PORTION OF LUMOSITY VALUES WHICH WOULD CAUSE COLOR IMBALANCE TO        OTHER NEARBY PIXELS        -   A method of producing a sub-pixel resolution representation            of a source image suitable for display on a sub-pixel            addressed screen having pixels comprised of separately            addressable differently colored sub-pixels, said method            comprising:        -   producing a scaled sub-pixel optimized image of a bitmap            image by associating a luminosity value with each subpixel            of the scaled image as a function of:        -   the whole pixel luminosity of the one or more pixels in the            source image which cover a source image window corresponding            to the area of the subpixel;        -   the percent of that window covered by each such source image            pixel; and        -   a color balancing function that distributes subpixel            luminosity values to reduce color imbalance.        -   SOURCE IMAGE IS A GRAY SCALE IMAGE            -   A method as in the parent innovation wherein the source                image is a gray scale image.        -   SOURCE IMAGE IS A COLOR IMAGE            -   A method as in the parent innovation wherein the source                image is a color image.        -   EXTENT OF DISTRIBUTION OF LUMINOSITY VALUES IS A FUCNTION OF            EXTENT TO WHICH THEY CAUSE COLOR IMBALANCE            -   A method as in the parent innovation wherein the extent                to which a given luminosity value associated with a                given subpixel's source image window is distributed to                other subpixels is a function of extent to which the                luminosity value causes a color imbalance.                C-Group Innovations    -   DISPLAYING MEDIA CONTAINING BOTH TEXT AND IMAGES BOTH SCALING        DOWN AND SUBPIXEL-OPTIMIZING THE VISUAL REPRESENTATION OF BOTH        ITS IMAGES AND FONTS        -   A method of displaying, on a subpixel addressed screen            having pixels comprised of separately-addressable,            differently-colored subpixels, digital content, including            text and images, said method comprising:        -   displaying, on said screen, a scaled-down subpixel-optimized            representation of one or more of said images in which the            luminosity of each differently colored subpixel of a given            pixel is derived from a different area of the same image at            a second, higher resolution, pixel scale;        -   displaying, on said screen, a scaled-down subpixel-optimized            representation of each of one or more characters fonts of            said text in which the luminosity of each differently            colored subpixel of a given pixel of the scaled-down image            of a given character shape is derived from a different area            of a higher resolution image of that character; and        -   THE TEXT IS TEXT INCLUDED IN A MARK-UP LANGUAGE AND THE            DISPLAYED IMAGES ARE DATA OBJECTS IDENTIFIED BY TAGS IN THAT            MARK-UP LANGUAGE            -   A method as in the parent innovation wherein:            -   said digital content is represented by tagged text                written in a mark-up language that includes image tags                which identify image data objects;            -   said text displayed on said screen includes strings of                characters from said tagged text; and            -   said images displayed on said screen are images                represented by image data objects identified by said                image tags.            -   DIGITAL CONTENT IS A WEB PAGE AND THE SCALING AND                SUBPIXEL OPTIMIZATION OF IMAGES AND TEXT ALLOWS USER TO                SEE WEB PAGE ON A SUBPIXEL DISPLAY HAVING A GIVEN                WHOLE-PIXEL RESOLUTION AS IF VIEWING THE WEB PAGE ON A                SCREEN WITH A HIGHER RESOLUTION                -   A method as in the parent innovation wherein:                -   the digital content is a web page; and                -   the scaled-down and subpixel-optimized images and                    text allow a user to see the web page on a subpixel                    addressed screen having a given whole-pixel                    resolution as if viewing the web page on a screen                    with a higher resolution.        -   DIGITAL CONTENT IS SCREEN OUTPUT PRODUCED BY A SOFTWARE            APPLICATION AND THE SCALING AND SUBPIXEL OPTIMIZATION OF            IMAGES AND TEXT ALLOWS USER TO SEE THE SCREEN OUTPUT ON A            SUBPIXEL DISPLAY HAVING A GIVEN WHOLE-PIXEL RESOLUTION AS IF            VIEWING THE WEB PAGE ON A SCREEN WITH A HIGHER RESOLUTION            -   A method as in the parent innovation wherein:            -   the digital content is screen output generated by a                software application; and            -   the scaled-down and subpixel-optimized images and text                allow a user to see the screen output on a subpixel                addressed screen having a given whole-pixel resolution                as if viewing the web page on a screen with a higher                resolution.        -   IMAGES AND FONTS ARE SCALED DYNAMICALLY FROM STORED OR            DYNAMICALLY GENERATED REPRESENTATION IN RESPONSE TO USER            CONTENT REQUEST            -   A method as in the parent innovation wherein:            -   said screen is part of a browser computer capable of                browsing digital content;            -   the browser computer includes browser programming which                responds to user input requesting a given portion of                digital content by requesting that content from a                another entity, either a storage device, another                computer, or other programming running on the browser                computer;            -   in response to the request from the browser programming,                the digital content is read from memory or dynamically                generated at a resolution higher than said first scale;            -   the scaled-down subpixel-optimized representation of                said images are calculated after the digital content's                images have been read from memory or dynamically                generated in response to said user request; and            -   the size of the scaled-down subpixel-optimized                representation of character fonts is determined as a                function of size identified for such fonts in the                digital content, after that digital content has been                read from memory or dynamically generated in response to                the user request.            -   BY SERVER STORING IMAGE, WHICH DOWNLOADS THOSE SCALED,                SUBPIXEL OPTIMIZED IMAGES                -   A method as in the parent innovation wherein:                -   a browser computer communicates a user request for a                    given portion of digital content over a computer                    network to a server computer system;                -   the server computer system reads the requested                    digital content from memory or dynamically generates                    it;                -   the calculation of the scaled-down and                    subpixel-optimized image representations is                    performed by the server computer system; and                -   the scaled-down subpixel-optimized image                    representations and the digital content's text is                    downloaded over the network to the browser computer,                    which then displays the scaled down images and text.            -   BY PROXY SERVER, WHICH DOWNLOADS THOSE SCALED, SUBPIXEL                OPTIMIZED IMAGES                -   A method as in the parent innovation wherein:                -   a browser computer communicates a user request for a                    given portion of digital content over a computer                    network to a proxy server;                -   said the proxy server communicates said user request                    over the network to a remote computer system;                -   the server computer system receiving the request,                    reads the requested digital content from memory                    and/or dynamically generates it and sends the image                    to the proxy server over the computer network;                -   the calculation of the scaled-down and                    subpixel-optimized image representations is                    performed by the proxy server; and                -   the scaled-down subpixel-optimized image                    representations and the digital content's text is                    downloaded over the network to the browser computer,                    which then displays the scaled down images and text.            -   BY BROWSER                -   A method as in the parent innovation wherein the                    calculation of the scaled-down and                    subpixel-optimized image representations is                    performed by the proxy server, which then displays                    the scaled down image.            -   USER CAN SELECT DISPLAY SCALE FROM ONE OF A PLURALITY OF                REDUCED-SIZED SCALES AND IMAGE AND FONTS ARE DYNAMICALLY                SCALED TO SELECTED SCALE                -   A method as in the parent innovation:                -   further including enabling a user to select a                    desired display scale from a plurality of possible                    reduced-size scales each having a lower resolution                    than the resolution at which the image is read from                    memory or dynamically generated; and                -   wherein the scale factor used in the calculation of                    the scaled-down and subpixel-optimized                    representations of images and in the scaling down of                    character font sizes is determined by the user                    selected display scale.    -   DISPLAYING SUBPIXEL-OPTIMIZED REPRESENTATION OF DIGITAL CONTENT        HAVING BOTH IMAGES AND TEXT USING DIFFERENT SUBPIXEL        OPTIMIZATION ALGORITHMS FOR TEXT AND MULTI-COLOR IMAGES—WHEREIN        THE IMAGE ALGORITHM DETERMINES A GIVEN SUBPIXEL'S LUMINOSITY        BASED MORE ON LUMINOSITY OUTSIDE OF PORTION OF SOURCE        REPRESENTATION CORRESPONDING TO THE SUBPIXEL THAN DOES TEXT        ALGORITHM; AND IMAGE ALGORITHM DETERMINES A GIVEN SUBPIXEL'S        LUMINOSITY BASED MORE EXCLUSIVELY ON THE AMOUNT OF THE        LUMINOSITY OF THE GIVEN SUBPIXELS COLOR FOUND IN THE GIVEN        SUBPIXEL'S WINDOW IN THE SOURCE REPRESENTATION THAN DOES THE        TEXT ALGORITHM, WHOSE DETERMINATION OF A GIVEN SUBPIXEL'S        LUMINOSITY VALUE IS LESS INFLUENCED BY THE GIVEN SUBPIXEL'S        COLOR        -   A method of displaying, on a subpixel addressed screen            having pixels comprised of separately-addressable,            differently-colored subpixels, digital content that includes            both text and multicolor images, said method comprising:        -   displaying on the screen subpixel-optimized representations            of both the digital content's multicolor images and text in            which the luminance of individual subpixels of a pixel            conveys information from different portions of the image or            text character represented by that pixel, including using            different algorithms to produce the subpixel-optimized            representations of multicolor images and of the shapes of            text characters;        -   wherein:        -   the image algorithm used to produce subpixel-optimized            representations of a multicolored image and the text            algorithm used to produce subpixel-optimized representations            of text characters both determine the luminosity of each            differently colored subpixel of a given pixel based on the            luminosity in a corresponding different window of a source            representation of the image or character shape to be            represented        -   the image algorithm determines a given subpixel's luminosity            based more on luminosity outside of the portion of the            source representation that corresponds in size to the given            subpixel than does the text algorithm; and        -   the image algorithm determines a given subpixel's luminosity            based more exclusively on the amount of the luminosity of            the given subpixel's color found in the given subpixel's            corresponding window in the source representation than does            the text algorithm, whose determination of a given            subpixel's luminosity value is less influenced by the given            subpixel's color.        -   ALGORITHM FOR IMAGES CALCULATES SUBPIXEL LUMINANCE BASED ON            AMOUNT OF THAT SUBPIXEL'S COLOR FOUND IN A PORTION OF A            HIGHER RESOLUTION VERSION OF IMAGE THAT IS LARGER THAN THE            AREA CORRESPONDING TO THE SUBPIXEL IN THAT HIGH RES.            IMAGE—AND ALGORITHM FOR CHARACTER SHAPES CALCULATES SUBPIXEL            LUMINANCE BASED ON THE PERCENT OF THE SUBPIXEL'S PORTION OF            A HIGHER RESOLUTION REPRESENTATION OF CHARACTER'S SHAPE            COVERED BY THE CHARACTER'S SHAPE            -   A method as in the parent innovation wherein:            -   the algorithm used to produce subpixel-optimized                representations of a multicolored image determines the                luminosity of each differently colored subpixel of a                given pixel based on the amount of the luminosity of                that subpixel's color found in a respective different                portion of a higher resolution representation of the                image that is larger than the area corresponding to the                size of the subpixel in that higher resolution                representation; and            -   the algorithm used to produce subpixel-optimized                representations of a character shape determines the                luminosity of each differently colored subpixel of a                given pixel based on the extent to which the portion of                a higher resolution representation of the character's                shape that corresponds to the subpixel is covered by the                character's shape.            -   COLOR BALANCE FILTERING USED IN REPRESENTATIONS OF                CHARACTER SHAPES                -   A method as in the parent innovation wherein the                    algorithm used to produce subpixel-optimized                    representations of characters shapes includes:                -   producing a scaled sub-pixel optimized image of a                    bitmap image by associating a luminosity value with                    each subpixel of the scaled image as a function of:                -   the percent the area of the subpixel's area in the                    image that is covered by the shape; and                -   a color balancing function designed to distribute a                    portion of a subpixel's luminosity values which                    otherwise would cause color imbalance to nearby                    subpixels of different colors                -   PERCENT OF SUBPIXEL'S LUMINOSITY DISTRIBUTED IS                    FUNCTION OF PERCENT OF THAT VALUE WHICH CAUSES COLOR                    IMBALANCE                -    A method as in the parent innovation wherein the                    percent of a subpixel's luminosity values that is                    distributed to achieve color balance is a function                    of the percent of the subpixel's luminosity value                    which causes color imbalance.        -   DIGITAL CONTENT IS DOWNLOADED OVER A COMPUTER NETWORK IN THE            FORM OF SUBPIXEL-OPTIMIZED IMAGE REPRESENTATION BITMAPS            CREATED BY THE IMAGE ALGORITHM AND TEXT STRINGS, RECEIVING            COMPUTER DISPLAYS THE DOWNLOADED DIGITAL CONTENT BY            DISPLAYING THE DOWNLOADED IMAGE BITMAPS AND BY DISPLAYING            THE DOWNLOADED TEXT STRINGS USING SUBPIXEL-OPTIMIZED            REPRESENTATIONS CREATED BY THE TEXT ALGORITHM            -   A method as in the parent innovation wherein:            -   said digital content is downloaded over a computer                network in the form of subpixel-optimized image bitmaps                created by the image algorithm and text strings;            -   a computer receiving this download displays the                downloaded digital content by:            -   displaying the downloaded image bitmaps; and            -   displaying the downloaded text strings using                subpixel-optimized font bitmaps created by the text                algorithm to represent the characters in the downloaded                text strings            -   REPEATED IMAGE BITMAPS ARE REPRESENTED SYMBOLICALLY IN                DOWNLOADED TO REDUCE REQUIRED BANDWIDTH                -   A method as in the parent innovation wherein said                    download of the digital content represents repeated                    occurrences of the same subpixel-optimized image                    bitmap by a symbolic reference, rather than by a                    repeated transmission of the bitmap to reduce the                    amount of information required for the download.            -   DIGITAL CONTENT IS LAID OUT BEFORE DOWNLOAD, TEXT                STRINGS ARE DOWNLOADED AS SINGLE LINE STRINGS, DIGITAL                CONTENT SPECIFIES LOCATION AT WHICH SUBPIXEL-OPTIMIZED                IMAGE BITMAPS AND TEXT STRINGS ARE TO BE DISPLAYED ON                SCREEN, SO RECEIVING COMPUTER DOES NOT HAVE TO LAYOUT                IMAGES AND TEXT STRINGS                -   A method as in the parent innovation wherein:                -   the digital content is laid out before it is                    downloaded to said receiving computer;                -   the text strings downloaded contain text which is to                    be displayed on one line; and                -   the downloaded content specifies the location at                    which subpixel-optimized image bitmaps and text                    strings are to be displayed on the screen, so the                    receiving computer does not have to determine the                    location of said images and text strings                -   CLIENT REQUESTS SYMBOLICALLY REFERRED TO OBJECTS IF                    DOESN'T HAVE THEM                -    IF PROXY KNOWS HASN'T SENT THEM BEFORE COULD SEND                    THEM WITH REQUEST            -   RECEIVING COMPUTER REQUESTS OVER THE NETWORK SUBPIXEL                OPTIMIZED FONT BITMAPS FOR CHARACTER-FONT SHAPES IN                DOWNLOADED STRINGS FOR WHICH IT DOES NOT HAVE BITMAPS                -   A method as in the parent innovation wherein the                    receiving computer requests over the network such                    font bitmaps to represent character-font shapes in                    downloaded strings for which it does not have                    corresponding bitmaps.            -   RECEIVING COMPUTER GENERATES SUBPIXEL-OPTIMIZED FONT                BITMAPS FROM OUTLINE FONTS FOR CHARACTER-FONT SHAPES IN                DOWNLOADED STRINGS                -   A method as in the parent innovation wherein the                    receiving computer generates such font bitmaps from                    outline fonts to represent character-font shapes in                    the downloaded strings.            -   FONT BITMAPS ARE DOWNLOADED FROM SAME COMPUTER AS IMAGE                BITMAPS                -   A method as in the parent innovation wherein such                    font bitmaps are downloaded from same computer as                    image bitmaps.        -   IMAGE AND FONT SIZES ARE AUTOMATICALLY SCALED AS FUNCTION OF            DISPLAY SCALE AND SUBPIXEL OPTIMIZED FONTS ARE SHOWN AT            THOSE SCALES            -   A method as in the parent innovation wherein:            -   the size of the displayed subpixel-optimized                representations of images and text is scaled as a                function of a given display scale.            -   //this variation can be in different displays of same                content by the same user, in displays of different                content by the same user, or by displays of the same or                different content by different viewers            -   IMAGES AND FONTS ARE SCALED DYNAMICALLY FROM STORED OR                DYNAMICALLY GENERATED REPRESENTATION IN RESPONSE TO USER                CONTENT REQUEST                -   A method as in the parent innovation wherein:                -   said digital content is read from memory or                    dynamically generated in response to a user request;                -   said subpixel-optimized representation of said                    images are calculated after the digital content's                    images have been read from memory or dynamically                    generated in response to said user request, and said                    calculation includes causing the subpixel-optimized                    images to be scaled-down to said display scale; and                -   the size of the scaled-down subpixel-optimized                    representation of text characters which are                    displayed is determined as a function of the size                    identified for such fonts in the digital content,                    after that digital content has been read from memory                    or dynamically created in response to the user                    request.                -   BY SERVER STORING OR DYNAMICALLY CREATING IMAGE,                    WHICH DOWNLOADS THOSE SCALED, SUBPIXEL OPTIMIZED                    IMAGES                -    A method as in the parent innovation wherein:                -    a browser computer communicates a user request for                    a given portion of digital content over a computer                    network to a server computer system;                -    the server computer system reads the requested                    digital content from memory or dynamically generates                    it;                -    the calculation of the scaled-down and                    subpixel-optimized image representations is                    performed by the server computer system; and                -    the scaled-down subpixel-optimized image                    representations and the digital content's text is                    downloaded over the network to the browser computer,                    which then displays the scaled down images and text.                -   BY PROXY SERVER, WHICH DOWNLOADS THOSE SCALED,                    SUBPIXEL OPTIMIZED IMAGES                -    A method as in the parent innovation wherein:                -    a browser computer communicates a user request for                    a given portion of digital content over a computer                    network to a proxy server;                -    said proxy server communicates said user request                    over the network to a remote computer system;                -    the server computer system receiving the request,                    reads the requested digital content from memory or                    dynamically generates it and sends the image to the                    proxy server over the computer network;                -    the calculation of the scaled-down and                    subpixel-optimized image representations is                    performed by the proxy server; and                -    the scaled-down subpixel-optimized image                    representations and the digital content's text is                    downloaded over the network to the browser computer,                    which then displays the scaled down images and text.                -   BY BROWSER                -    A method as in the parent innovation wherein the                    calculation of the scaled-down and                    subpixel-optimized image representations is                    performed by the proxy server, which then displays                    the scaled down image.                -   USER CAN SELECT DISPLAY SCALE FROM ONE OF A                    PLURALITY OF REDUCED-SIZED SCALES AND IMAGE AND                    FONTS ARE DYNAMICALLY SCALED TO SELECTED SCALE                -    A method as in the parent innovation:                -    further including enabling a user to select a                    desired display scale from a plurality of possible                    reduced-size scales each having a lower resolution                    than the resolution at which the image was read from                    memory or dynamically generated; and                -    wherein the scale factor used in the calculation of                    the scaled-down and subpixel-optimized                    representations of images and in the scaling down of                    character font sizes is determined by the user                    selected display scale.            -   DIFFERENT SIZES FONTS ARE SCALED BY A DIFFERENT RATIO TO                PREVENT SIZE OF SMALLER FONTS FROM DROPPING BELOW A                GIVEN SIZE                -   A method as in the parent innovation wherein:                -   said digital content can specify different sizes for                    different portions of text; and                -   a first portion of text having a smaller specified                    font size is scaled down by less in said display                    than a second portion of text having a larger                    specified font size to prevent the display of                    characters of said first portion of text from                    falling below a given size.            -   DIGITAL CONTENT SPECIFIES A FONT FAMILY FOR A GIVEN                PORTION OF TEXT, AND THAT PORTION OF TEXT IS DISPLAYED                WITH A DIFFERENT FONT FAMILY SELECTED TO BE EASIER TO                VEIWED AT A SMALLER PIXEL RESOLUTION                -   A method as in the parent innovation wherein:                -   said digital content can specify a first font family                    for a given portion of its text; and                -   said given portion of text is displayed with a                    second, different font family selected to be easier                    to read at small font resolutions.            -   SUBPIXEL RESOLUTION IS HIGHER IN A FIRST DIRECTION THAN                IN A PERPENDICULAR SECOND DIRECTION, THE DISPLAY OF                CERTAIN CHARACTERS IS SCALED DOWN MORE IN THE FIRST                DIRECTION RELATIVE TO THE SECOND DIRECTION THAN IS THE                DISPLAY OF IMAGES                -   A method as in the parent innovation wherein:                -   the subpixel resolution of said screen is higher in                    a first direction than in a second, perpendicular                    direction; and                -   the display of characters of at least a portion of                    text is automatically scaled down, as a function of                    said display scale, more in the first direction                    relative to the second direction than is the display                    of images.                -   FIRST DIRECTION IS THE HORIZONTAL DIRECTION                -    A method as in the parent innovation wherein the                    first direction is the horizontal direction.            -   DISPLAYED SUBPIXEL-OPTIMIZED REPRESENTATION OF TEXT                CHARACTERS ARE DERIVED FROM BITMAPS REPRESENTING A                SEPARATE OPACITY VALUE FOR EACH SUBPIXEL OF A PIXEL,                DISPLAYED SUBPIXEL-OPTIMIZED IMAGES ARE TRUE COLOR                BITMAPS WITH SEPARATE LUMINANCE VALUE FOR EACH SUBPIXEL                OF A PIXEL        -   THE TEXT IS TEXT INCLUDED IN A MARK-UP LANGUAGE AND THE            DISPLAYED IMAGES ARE DATA OBJECTS IDENTIFIED BY TAGS IN THAT            MARK-UP LANGUAGE            -   A method as in the parent innovation wherein:            -   said digital content is represented by tagged text                written in a mark-up language that includes image tags                which identify image data objects;            -   said text displayed on said screen includes strings of                characters from said tagged text; and            -   said images displayed on said screen are images                represented by image data objects identified by said                image tags.            -   DIGITAL CONTENT IS A WEB PAGE AND THE SCALING AND                SUBPIXEL OPTIMIZATION OF IMAGES AND TEXT ALLOWS USER TO                SEE WEB PAGE ON A SUBPIXEL DISPLAY HAVING A GIVEN                WHOLE-PIXEL RESOLUTION AS IF VIEWING THE WEB PAGE ON A                SCREEN WITH A HIGHER RESOLUTION                -   A method as in the parent innovation wherein:                -   the digital content is a web page; and                -   the subpixel-optimized representations of images are                    scaled down from the images in said web page;                -   the subpixel-optimized representation of text                    characters show said characters at font sizes which                    are scaled-down from the font sizes indicated for                    those characters in said web page; and                -   the scaled-down and subpixel-optimized                    representation of images and text allow a user to                    see the web page on a subpixel addressed screen                    having a given whole-pixel resolution as if viewing                    the web page on a screen with a higher resolution.        -   DIGITAL CONTENT IS SCREEN OUTPUT PRODUCED BY A SOFTWARE            APPLICATION AND THE SCALING AND SUBPIXEL OPTIMIZATION OF            IMAGES AND TEXT ALLOWS USER TO SEE THE SCREEN OUTPUT ON A            SUBPIXEL DISPLAY HAVING A GIVEN WHOLE-PIXEL RESOLUTION AS IF            VIEWING THE WEB PAGE ON A SCREEN WITH A HIGHER RESOLUTION            -   A method as in the parent innovation wherein:            -   the digital content is screen output generated by a                software application; and            -   the subpixel-optimized representations of images are                scaled down from the images in said screen output;            -   the subpixel-optimized representation of text characters                show said characters at font sizes which are scaled-down                from the font sizes indicated for those characters in                said screen output; and            -   the scaled-down and subpixel-optimized images and text                allow a user to see the screen output on a subpixel                addressed screen having a given whole-pixel resolution                as if viewing the screen output on a screen with a                higher resolution.                D-Group Innovations    -   ACCESSING DIGITAL CONTENT REPRESENTED BY MARK-UP LANGUAGE,        INCLUDING TEXT, AND DISPLAYING TEXT CHARACTERS WITH SUB-PIXEL        OPTIMIZED PIXEL PATTERNS DERIVED AS A FUNCTION OF THE EXTENT TO        WHICH EACH SUBPIXEL WAS COVERED BY CHARACTER OUTLINE        -   A method of displaying, on a sub-pixel addressed screen            having pixels comprised of separately addressable            differently colored sub-pixels, digital content including            text and/or images represented by a mark-up language            including tags which identify images contained in said            content, said method comprising:        -   accessing said digital content including said text; and        -   displaying on said screen characters of said text in which:        -   the pixel patterns representing each individual text            character represent an outlined defined shape of the            character; and        -   the luminosity of each differently colored subpixel of a            given pixel used in the display of a portion of a given            character's shape has been derived as a function of the            extent to which the outline of the given character's shape            covers that individual sub-pixel.        -   ACCESSED DIGITAL CONTENT IS A WEB PAGE            -   A method as in the parent innovation wherein said                accessed digital content is a web page.            -   DIGITAL CONTENT IS DOWNLOADED OVER THE INTERNET                -   A method as in the parent innovation wherein said                    web page is accessed by downloading it over the                    Internet.                -   DOWNLOADING SUB-PIXEL OPTIMIZED FONTS OVER INTERNET                -    A method as in the parent innovation further                    comprising the downloading over the Internet of                    character-font shape information necessary to                    display the pixel patterns representing each of a                    plurality of said text characters.        -   DOWNLOADING SUB-PIXEL OPTIMIZED FONTS OVER INTERNET            -   A method as in the parent innovation further comprising                the downloading over the Internet of character-font                shape information necessary to display the pixel                patterns representing each of a plurality of said text                characters.            -   DOWNLOADED FONTS ARE IN THE FORM OF SUBPIXEL OPTIMIZED                PIXEL PATTERNS                -   A method as in the parent innovation wherein:                -   said downloaded character-font shape information is                    in the form of pixel patterns; and                -   said displaying of said characters includes                    displaying said downloaded pixel patterns.                -   SIZE OF FONT SERVED VARIES WITH SIZE TO WHICH PAGE                    IS SCALED            -   DOWNLOADED FONTS ARE IN THE FORM OF FONT OUTLINES WITH                HINTING                -   A method as in the parent innovation wherein:                -   said downloaded character-font shape information is                    in the form of character shape outline definitions                    and hinting information on how to map said outline                    shapes onto pixel arrays of a given size; and                -   said displaying of said characters includes                    displaying pixel patterns generated from said                    character shape and hinting information.            -   DOWNLOADING A SUBSETS OF A FONT'S CHARACTER'S SELECTED                AS A FUNCTION OF THE TEXT CHARACTERS WHICH HAVE BEEN                DOWNLOADED FOR DISPLAY                -   A method as in the parent innovation wherein said                    downloading of character-font shape information                    includes download such information for a sub-set of                    a given font's characters which subset is selected                    as a function of the text characters of a given font                    which have been downloaded for said display.            -   DOWNLOADED FONTS ARE OF A DIFFERENT FONT FAMILY THAN                THOSE SUGGESTED FOR TEXT IN MARK-UP LANGUAGE                -   A method as in the parent innovation wherein:                -   said mark-up language includes tags indicating                    information about the font which should be used to                    display a given portion of text;                -   said method further comprises displaying characters                    from said given portion of text using a different                    font family than that suggested by said portion of                    text by said tags; and                -   said downloaded character-font shape information                    includes information necessary for displaying said                    given portion of text with pixel patterns                    corresponding to said different font.                -   DIFFERENT HEIGHT/WIDTH RATIO                -   DIFFERENT FONT FAMILY OPTIMIZED FOR LOW PIXEL COUNT                    AND DIFFERENT HORIZONTAL SUBPIXEL RESOLUTION THAN                    VERTICAL PIXEL RESOLUTION            -   DOWNLOADING FONTS FROM DIFFERENT COMPUTER THAN THAT FROM                WHICH TEXT IS DOWNLOADED                -   A method as in the parent innovation wherein said                    character-font shape information is downloaded from                    a different computer than that from which said                    digital content including said text is downloaded.                -   AUTOMATICALLY DOWNLOADING CHARACTER-FONT SHAPES FROM                    THE DIFFERENT COMPUTER AS A FUNCTION OF THE                    CHARACTER-FONT SHAPES SPECIFIED BY THE DOWNLOADED                    TEXT                -    A method as in the parent innovation wherein:                -    said text is displayed on a browser computer; and                -    said browser receives said downloaded text from a                    first computer; and                -    said browser requests and receives said downloaded                    character-font shape information for a set of                    character-font shapes determined as a function of                    the character-font shapes specified by the                    downloaded digital content.                -    DOWNLOADED CHARACTER-FONT SHAPE INFORMATION IS                    REQUESTED USING THE HTTP PROTOCOL                -    A method as in the parent innovation wherein said                    downloaded character-font shape information is                    requested using the Http protocol.        -   USING NON-LINEAR SUB-PIXEL FONT OPTIMIZATION—PRODUCING            SUB-PIXEL OPTIMIZED IMAGE OF A CHARACTER SHAPES BY            ASSOCIATING A LUMINOUSITY VALUE WITH EACH SUBPIXEL OF THAT            IMAGE BOTH AS A FUNCTION THE PERCENT OF THE SUBPIXEL'S AREA            WHICH IS COVERED BY THE SHAPE, AND AS A FUNCTION OF A COLOR            BALANCING FUNCTION DESIGNED TO DISTRIBUTE A PORTION OF            LUMOSITY VALUES WHICH WOULD CAUSE COLOR IMBALANCE TO OTHER            NEARBY PIXELS, WHERE THE EXTENT OF DISTRIBUTION OF            LUMINOSITY VALUES IS A FUCNTION OF EXTENT TO WHICH THEY            CAUSE COLOR IMBALANCE            -   A method as in the parent innovation wherein the font                pixel pattern representing the shape of each individual                text character is produced by associating a luminosity                value with each subpixel of the font pixel pattern as a                function of:            -   the percent of the area of the subpixel's area in the                image that is covered by the character shape; and            -   a color balancing function designed to distribute a                portion of a subpixel's luminosity values which                otherwise would cause color imbalance to nearby                subpixels of different colors, where the percent of a                subpixel's luminosity value that is so distributed is a                function of the percent of the subpixel's luminosity                value which causes color imbalance.        -   DISPLAYED FONTS ARE DYNAMICALLY SCALED AFTER THEY ARE            RECEIVED AS A FUNCTION OF A DISPLAY SCALE FACTOR            -   A method as in the parent innovation wherein:            -   the displaying of said text on the screen is scaled down                by a display scale factor;            -   the digital content is received in a form in which the                text has not been scaled by the scale factor;            -   after the digital content is received the size of the                scaled-down subpixel-optimized representation of                character fonts is determined as a function of a the                scale factor.            -   BY SERVER STORING OR DYNAMICALLY GENERATING DIGITAL                CONTENT, WHICH DOWNLOADS THOSE SCALED, SUBPIXEL                OPTIMIZED IMAGES                -   A method as in the parent innovation wherein:                -   a browser computer communicates a user request for a                    given portion of digital content over a computer                    network to a server computer system;                -   the server computer system reads the requested                    digital content from memory or dynamically generates                    the requested digital content;                -   the size of the scaled-down subpixel-optimized                    representation of the text's character fonts is                    determined by the server computer system; and                -   the requested digital content and the size of such                    scaled-down subpixel-optimized character font                    representations is downloaded by the server, over                    the network, to the browser computer, which then                    displays the digital content's text using such                    scaled-down representations.            -   BY PROXY SERVER, WHICH DOWNLOADS THOSE SCALED, SUBPIXEL                OPTIMIZED IMAGES                -   A method as in the parent innovation wherein:                -   a browser computer communicates a user request for a                    given portion of digital content over a computer                    network to a proxy server;                -   the proxy server communicates the user request over                    the network to a remote server computer system;                -   the server computer system receiving the request,                    reads the requested digital content from a storage                    device or dynamically generates the requested                    digital content;                -   the server computer system sends the requested                    digital content to the proxy server over the                    computer network;                -   the size of the scaled-down subpixel-optimized                    representation of the text's character fonts is                    determined by the proxy server; and                -   the requested digital content and the size of such                    scaled-down subpixel-optimized character fonts                    representations is downloaded by the proxy server,                    over the network, to the browser computer, which                    then displays the digital content's text using such                    scaled-down representations.            -   BY BROWSER                -   A method as in the parent innovation wherein the                    size of the scaled-down subpixel-optimized                    representation of the text's character fonts is                    determined by the browser computer, which then                    displays the scaled down image.            -   USER CAN SELECT DISPLAY SCALE FROM ONE OF A PLURALITY OF                REDUCED-SIZED SCALES AND IMAGE AND FONTS ARE DYNAMICALLY                SCALED TO SELECTED SCALE                -   A method as in the parent innovation:                -   further including enabling a user to select a                    desired display scale factor from a plurality of                    possible reduced-size scales each having a lower                    resolution than that in which said digital content                    is first received; and                -   wherein the size of the scaled-down                    subpixel-optimized representation of character fonts                    is determined as a function of the user selected                    scale factor.            -   DISPLAYING TEXT WITH SUBPIXEL-OPTIMIZED FONT BITMAPS                WHICH ARE AS SMALL AS 10 WHOLE PIXELS PER EM                -   A method as in the parent innovation wherein said                    scaled down subpixel-optimized representations of                    character fonts are as small as 10 whole pixels per                    EM.                -   AS SMALL AS 8 WHOLE PIXELS PER EM                -    A method as in the parent innovation wherein said                    scaled down subpixel-optimized representations of                    character fonts are as small as 8 whole pixels per                    EM.            -   DISPLAYING TEXT WITH FONT FAMILY OPTIMIZED FOR                READABILITY WHEN SHOWN IN A SUBPIXEL OPTIMIZED MANNER AT                A FONT SIZE OF LESS THAN 10 PIXELS PER EM.                -   A method as in the parent innovation wherein the                    font family used for the display of the text is a                    font family optimized for readability when shown in                    a subpixel optimized manner at a size of less than                    10 pixels per EM.                -   DISPLAYING TEXT WITH FONT FAMILY THAT HAS CHARACTER                    SHAPES OPTIMIZED FOR DISPLAY WITH HIGHER SUB-PIXEL                    RESOLUTION IN THE WIDTH DIRECTION THAN HEIGHT                    DIRECTION                -    A method as in the parent innovation wherein the                    font family has font shapes designed for display                    with higher sub-pixel resolution in the width                    direction than height direction relative to said                    characters.                -    OPTIMIZATION INCLUDES HINTING WHICH ADJUSTS OUTLINE                    SHAPE BOUNDARIES AT A RESOLUTION AT LEAST AS HIGH AS                    SUBPIXEL RESOLUTION                -    A method as in the parent innovation wherein the                    font optimization includes hinting which adjusts                    character shape boundaries at a resolution at least                    as high as the subpixel resolution.                -    FONT FAMILY HAS CHARACTER SHAPES WITH A HIGHER                    HEIGHT TO WIDTH RATIO THAN NORMAL FONTS                -    A method as in the parent innovation wherein the                    font family has font shapes which have a higher                    height to width ratio than most normal fonts.                -    MAJORITY OF CHARACTER SHAPES IN FONT FAMILY ARE AT                    LEAST TWICE AS HIGH AS THEY ARE WIDE                -    A method as in the parent innovation wherein the                    majority of character shapes in the font family are                    at least twice as high as they are wide.            -   SIZE DETERMINATION INCREASES SIZES OF SMALLER FONTS                RELATIVE TO LARGER FONTS TO PREVENT SMALLER FONTS FROM                BEING DISPLAYED BELOW A GIVEN SIZE.                -   A method as in the parent innovation wherein:                -   the digital content includes different portions of                    text intended to be shown at different sizes; and                -   the determination of the size of scaled-down                    subpixel-optimized character representations                    includes scaling down the size of text which is                    intended to be shown at a smaller size than text                    which is intended to be shown at larger size, so as                    to prevent the text intended to be shown at a                    smaller size from being displayed below a given                    size.            -   SHIFTS FONT FOREGROUND COLOR TOWARD GREYSCALE                -   A method as in the parent innovation wherein:                -   the digital content includes text which is intended                    to be shown with a non-grayscale foreground color;                    and                -   the text is displayed in a subpixel-optimized manner                    with a foreground color which is closer to grayscale                    than intended.                -   SHIFTS REPLACES FOREGROUND COLOR WITH GREYSCALE                    COLOR                -    A method as in the parent innovation wherein the                    text which is intended to be displayed with a                    non-grayscale color is displayed with a grayscale                    color.                -   SHIFTS REPLACES FOREGROUND COLOR WITH AN                    NON-GREYSCALE COLOR WHICH IS CLOSER TO GRAYSCALE                -    A method as in the parent innovation wherein the                    text which is intended to be displayed with a                    non-grayscale color is displayed with a                    non-grayscale color which is closer to grayscale                    than the intended color.        -   REPLACE TEXT FOREGROUND OR BACKGROUND COLORS TO ALLOW BETTER            SUB-PIXEL OPTIMIZATION            -   A method as in the parent innovation:            -   wherein the digital content can define foreground and                background colors for given portion of text; and            -   further including displaying the given portion of text                with a different background and/or foreground color than                is defined by the digital content to increase the                ability of individual sub-pixels to represent the extent                to which they are covered by the outline of the given                character shape they are used to represent.    -   RECEIVING DIGITAL CONTENT CONTAINING TEXT AND SPECIFYING        INTENDED FOREGROUND COLOR FOR TEXT, DISPLAYING TEXT WITH        SUBPIXEL OPTIMIZED FONT BITMAPS USING COLORS FOREGROUND COLORS        SHIFTED TOWARD GRAYSCALE        -   A method of displaying, on a sub-pixel addressed screen            having pixels comprised of separately addressable            differently colored sub-pixels, digital content including            text, said method comprising:        -   receiving said digital content including said text; and        -   displaying on said screen characters of said text in which:        -   the pixel patterns representing each individual text            character represent an outlined defined shape of the            character; and        -   the luminosity of each differently colored subpixel of a            given pixel used in the display of a portion of a given            character's shape has been derived as a function of the            extent to which the outline of the given character's shape            covers that individual sub-pixel.        -   wherein:        -   the digital content includes text which is intended to be            shown with a non-grayscale foreground color; and        -   the text is displayed in a subpixel-optimized manner with a            foreground color which is closer to grayscale than intended.        -   SHIFTS REPLACES FOREGROUND COLOR WITH GREYSCALE COLOR            -   A method as in the parent innovation wherein the text                which is intended to be displayed with a non-grayscale                color is displayed with a grayscale color.        -   SHIFTS REPLACES FOREGROUND COLOR WITH AN NON-GREYSCALE COLOR            WHICH IS CLOSER TO GRAYSCALE            -   A method as in the parent innovation wherein the text                which is intended to be displayed with a non-grayscale                color is displayed with a non-grayscale color which is                closer to grayscale than the intended color.    -   RECEIVING DIGITAL CONTENT AND DISPLAYING ITS TEXT WITH        NON-LINEARLY SUBPIXEL OPTIMIZED BITMAPS—PRODUCING SUB-PIXEL        OPTIMIZED IMAGE OF A CHARACTER SHAPES BY ASSOCIATING A        LUMINOUSITY VALUE WITH EACH SUBPIXEL OF THAT IMAGE BOTH AS A        FUNCTION THE PERCENT OF THE SUBPIXEL'S AREA WHICH IS COVERED BY        THE SHAPE, AND AS A FUNCTION OF A COLOR BALANCING FUNCTION        DESIGNED TO DISTRIBUTE A PORTION OF LUMOSITY VALUES WHICH WOULD        CAUSE COLOR IMBALANCE TO OTHER NEARBY PIXELS, WHERE THE EXTENT        OF DISTRIBUTION OF LUMINOSITY VALUES IS A FUCNTION OF EXTENT TO        WHICH THEY CAUSE COLOR IMBALANCE        -   A method of displaying, on a sub-pixel addressed screen            having pixels comprised of separately addressable            differently colored sub-pixels, digital content including            text, said method comprising:        -   receiving said digital content including said text; and        -   displaying on said screen characters of said text in which:        -   the pixel patterns representing each individual text            character represent an outlined defined shape of the            character; and        -   the luminosity of each differently colored subpixel of a            given pixel used in the display of a portion of a given            character's shape has been derived as a function of the            extent to which the outline of the given character's shape            covers that individual sub-pixel;        -   wherein:        -   the font pixel pattern representing the shape of each            individual text character is produced by associating a            luminosity value with each subpixel of the font pixel            pattern as a function of:        -   the percent of the area of the subpixel's area in the image            that is covered by the character shape; and        -   a color balancing function designed to distribute a portion            of a subpixel's luminosity values which otherwise would            cause color imbalance to nearby subpixels of different            colors, where the percent of a subpixel's luminosity values            that is so distributed is a function of the percent of the            subpixel's luminosity value which causes color imbalance.        -   MORE SPECIFIC NON-LINEAR METHOD—PRODUCING SUBPIXEL OPTIMIZED            IMAGE OF A SHAPE BY ADDING A PIXEL COVERAGE VALUE,            DETERMINED AS FUNCTION OF COVERAGE OF ONE MORE SUB-PIXELS IN            A PIXEL, TO LUMINANCE OF EACH OF ITS SUB-PIXELS, AND            DISTRIBUTING THE DIFFERENCE BETWEEN EACH SUBPIXEL'S COVERAGE            VALUE AND ITS PIXEL'S COVERAGE VALUE BETWEEN THE LUMINANCES            OF THAT SUB-PIXELS AND NEARBY SUB-PIXELS, AT LEAST SOME OF            WHICH ARE IN A DIFFERENT PIXEL            -   A method as in the parent innovation wherein the font                pixel pattern representing the shape of each individual                text character is produced by:            -   determining a coverage value for each subpixel with                given pixel in the image area, which sub-pixel coverage                value corresponds to the percentage of the sub-pixel                which is covered by said shape;            -   determining a pixel coverage value for the given pixel,                which is a function of the coverage values calculated                for one or more of the sub-pixels with the given pixel;            -   adding to a luminosity value calculated for each                sub-pixel of the given pixel a value corresponding to                the given pixel's coverage value; and            -   for each sub-pixel in the given pixel:            -   determining a differential coverage value for each                sub-pixel corresponding to the difference between the                sub-pixel's coverage value and the given pixel's                coverage value;            -   adding to the luminosity value calculated for each given                sub-pixel and one or more nearby sub-pixels a value                corresponding to a portion of said the given sub-pixel's                differential coverage value, where at least some of said                nearby sub-pixels are located outside of the given                sub-pixel's pixel.    -   RECEIVING DIGITAL CONTENT CONTAINING TEXT AND DISPLAYING TEXT        WITH SUBPIXEL OPTIMIZED FONT BITMAPS OPTIMIZED FOR READABILITY        WHEN SHOWN IN A SUBPIXEL OPTIMIZED MANNER AT A FONT SIZE OF LESS        THAN 10 PIXELS PER EM.        -   A method of displaying, on a sub-pixel addressed screen            having pixels comprised of separately addressable            differently colored sub-pixels, digital content including            text, said method comprising:        -   receiving said digital content including said text; and        -   displaying on said screen characters of said text in which:        -   the pixel patterns representing each individual text            character represent an outlined defined shape of the            character; and        -   the luminosity of each differently colored subpixel of a            given pixel used in the display of a portion of a given            character's shape has been derived as a function of the            extent to which the outline of the given character's shape            covers that individual sub-pixel.        -   wherein the font family used for the display of the text is            a font family optimized for readability when shown in a            subpixel optimized manner at a size of less than 10 pixels            per EM.        -   DISPLAYING TEXT WITH FONT FAMINLY THAT HAS CHARACTER SHAPES            OPTIMIZED FOR DISPLAY WITH HIGHER SUB-PIXEL RESOLUTION IN            THE WIDTH DIRECTION THAN HEIGHT DIRECTION            -   A method as in the parent innovation wherein the font                family has font shapes designed for display with higher                sub-pixel resolution in the width direction than height                direction relative to said characters.            -   OPTIMIZATION INCLUDES HINTING WHICH ADJUSTS OUTLINE                SHAPE BOUNDARIES AT A RESOLUTION AT LEAST AS HIGH AS                SUBPIXEL RESOLUTION                -   A method as in the parent innovation wherein the                    font optimization includes hinting which adjusts                    character shape boundaries at a resolution at least                    as high as the subpixel resolution.            -   FONT FAMILY HAS CHARACTER SHAPES WITH A HIGHER HEIGHT TO                WIDTH RATIO THAN NORMAL FONTS                -   A method as in the parent innovation wherein the                    font family has font shapes which have a higher                    height to width ratio than most normal fonts.                -   MAJORITY OF CHARACTER SHAPES IN FONT FAMILY ARE AT                    LEAST TWICE AS HIGH AS THEY ARE WIDE                -    A method as in the parent innovation the majority                    of character shapes in the font family are at least                    twice as high as they are wide.    -   RECEIVING DIGITAL CONTENT CONTAINING DIFFERENT TEXT INTENDED TO        BE SHOWN AT DIFFERENT SIZES WHICH INDICATES AND DISPLAYING TEXT        WITH SUBPIXEL OPTIMIZED FONT BITMAPS USING SIZE DETERMINATION        INCREASES SIZES OF SMALLER FONTS RELATIVE TO LARGER FONTS TO        PREVENT SMALLER FONTS FROM BEING DISPLAYED BELOW A GIVEN MINIMUM        SIZE.        -   A method of displaying, on a sub-pixel addressed screen            having pixels comprised of separately addressable            differently colored sub-pixels, digital content including            text, said method comprising:        -   receiving said digital content including said text; and        -   displaying on said screen characters of said text in which:        -   the pixel patterns representing each individual text            character represent an outlined defined shape of the            character; and        -   the luminosity of each differently colored subpixel of a            given pixel used in the display of a portion of a given            character's shape has been derived as a function of the            extent to which the outline of the given character's shape            covers that individual sub-pixel.        -   wherein:        -   the digital content includes different portions of text            intended to be shown at different sizes; and        -   the determination of the size of scaled-down            subpixel-optimized character representations includes            scaling down the size of text which is intended to be shown            at a smaller size than text which intended to be shown at            larger size, so as to prevent the text intended to be shown            at a smaller size from being displayed below a given minimum            size.            E-Group Innovations    -   LAYING OUT PORTION MEDIA REPRESENTED BY MARK-UP LANGUAGE USING        ONE PIXEL RESOLUTION AND USING FONTS HAVING A DIFFERENT PIXEL        RESOLUTION TO DISPLAY THAT LAID-OUT AT A DIFFERENT RESOLUTION        -   DOING SAME WITH IMAGES        -   DIGITAL CONTENT IS A WEB PAGE        -   DO LAYOUT USING FONT METRICS, WHICH DO NOT CORRESPOND TO            ACTUAL SIZE AT WHICH FONTS WILL BE SHOWN ON SCREEN        -   USER CAN VARY VIRTUAL RESOLUTION AT WHICH DIGITAL CONTENT IS            LAID OUT        -   USER CAN VARY ACTUAL RESOLUTION AT WHICH A PORTION OF            VIRTUAL LAYOUT WHICH IS DISPLAYED    -   LAYING OUT FONT IN A SCREEN REPRESENTATION AT A GIVEN RESOLUTION        USING A GIVEN FONT METRIC, DRAWING SCREEN AT A DIFFERENT        RESOLUTION USING FONTS BITMAPS WHICH HAVE A RESOLUTION        APPROPRIATE FOR DIFFERENT RESOLUTION AND DIFFERENT FONT METRIC        THAN THAT AT WHICH FONTS WERE LAID OUT        -   FONT METRICS USED FOR LAYOUT ARE THOSE FOR FONTS DESIGNED            FOR THE DIFFERENT RESOLUTION        -   USE OF REMOTE PROCESS TO DO LAYOUT-USE WITH SUB-PIXEL            OPTIMIZATION        -   USE FOR WEB BROWSING    -   PERFORMING VIRTUAL LAYOUT THAT DETERMINES THE POSITION OF        DIGITAL CONTENT'S AND IMAGES AT A FIRST PIXEL SIZE IN A VIRTUAL        PIXEL SPACE AND THEN DISPLAYING LAID OUT SINGLE LINE TEXT        STRINGS AND IMAGES AT SMALLER PIXEL SIZE AT CORRESPONDING        LOCATIONS IN A SMALLER PIXEL SPACE        -   A method of displaying digital content comprising:        -   performing a virtual layout of the position of the digital            content's visible text and images in a virtual space having            a virtual horizontal and vertical pixel resolution,            including:        -   treating each such image as having a virtual layout size in            said virtual layout;        -   treating each character in the visible text as having a            virtual horizontal and vertical pixel size;        -   flowing the visible text across line boundaries by breaking            portions of text which cross a line boundary into separate            single line character strings, each of which fits on a line;        -   downloading information describing the images, single line            character strings, and their locations in said layout to a            browser system; and        -   displaying on the browser system the text and image elements            of said digital content at an actual pixel resolution which            is different than said virtual resolution by a horizontal            scale factor and a vertical scale factor, including:        -   displaying both said images and single line character            strings at display screen locations corresponding to the            locations at which they have been laid out in said virtual            space, adjusted in both the horizontal and vertical            direction by said horizontal and vertical scaling factors,            respectively;        -   representing each of said images in said display by an image            which has been scaled down from the image's virtual layout            size by said horizontal and vertical scaling factor;        -   representing individual characters in the single line text            strings by a pixel pattern which has a size that differs            from the character's virtual horizontal and vertical pixel            size by said horizontal and vertical scale factors.        -   GIVEN SIZE OF IMAGE IS THEIR ORIGINAL RECEIVED SIZE            -   A method as in the parent innovation wherein:            -   the digital content is received by said method                containing image bitmaps having a given pixel resolution            -   the virtual layout size of an image is the given pixel                resolution at which those images were received.        -   SUBSTITUTING FONTS WITH FONTS HAVING DIFFERENT METRICS            BEFORE VIRTUAL LAYOUT, AND PERFORM LAYOUT USING SUBSTITUTED            FONT'S METRICS        -   VITURAL LAYOUT IS PERFORMED ON COMPUTER REMOTE TO BROWSER            HAVING SCREEN AND IMAGES, IMAGE POSITIONS, AND TEXT            POSITIONS ARE DOWNLOADED TO BROWSER            -   A method as in the parent innovation wherein:            -   said displaying of both images and single line character                strings is performed on a browser computer;            -   said virtual layout is performed on a computer remote                from the browser computer; and            -   said remote computer downloads to the browser computer                said images and said display screen locations for the                display of images and single line character strings.            -   REMOTE COMPUTER THAT PERFORMS LAYOUT IS A PROXY SERVER                -   A method as in the parent innovation wherein said                    remote computer which performs said virtual layout                    is a proxy server which is remote from both the                    browser computer and computers on which a web page                    is located.        -   USER CAN VARY VIRTUAL RESOLUTION AT WHICH DIGITAL CONTENT IS            LAID OUT        -   USER CAN VARY ACTUAL RESOLUTION AT WHICH A PORTION OF            VIRTUAL LAYOUT WHICH IS DISPLAYED        -   USER CAN VARY VIRTUAL RESOLUTION AT WHICH DIGITAL CONTENT IS            LAID OUT        -   USER CAN VARY ACTUAL RESOLUTION AT WHICH A PORTION OF            VIRTUAL LAYOUT WHICH IS DISPLAYED    -   RECEIVING DIGITAL CONTENT, SCALING DOWN IMAGES AND/OR FONTS AND        THEN LAYING THEM OUT AT A SMALLER SIZE, DISPLAYING SCALED DOWN        FONTS WITH BITMAPS        -   A method of displaying a web page comprising:        -   scaling down the pixel size of one or more images of the web            page;        -   scaling down the font metrics associated with the web page's            visible text;        -   performing a layout of the position of the web page's            visible text and images in a display space having a given            horizontal and vertical pixel resolution, including:        -   treating each such image as having a said scaled down size            in said layout;        -   treating each character as having a scaled down pixel size            in said layout;        -   flowing the visible text across line boundaries by breaking            portions of text which cross a line boundary into separate            single line character strings, each of which fits on a line;            and        -   displaying both said images and single line character            strings at locations corresponding to the locations at which            they have been laid out in said display space;        -   representing each of said images in said display by a scaled            image which has the scaled down pixel size used in said            layout;        -   representing individual characters in the single line text            strings by a pixel pattern which has the character's scaled            down pixel size used in said layout.        -   SCALING DOWN OF OF IMAGE INCLUDES SUB-PIXEL OPTIMIZATION            -   A method as in the parent innovation wherein:            -   said displaying of both said images and single line                character strings is performed on a sub-pixel addressed                screen having pixels comprised of separately addressable                differently colored sub-pixels; and            -   said scaling down of the pixel size images includes                determining the luminosity of each differently colored                sub-pixel of a given pixel in the scaled image based on                the amount of the luminosity of that sub-pixel's color                found in a respective different portion of a higher                resolution representation of the image.        -   BITMAPS USED TO DISPLAY TEXT HAVE BEEN SUB-PIXEL OPTIMIZED            -   A method as in the parent innovation wherein:            -   the displaying of both said images and single line                character strings is performed on a sub-pixel addressed                screen having pixels comprised of separately addressable                differently colored sub-pixels;            -   the pixel patterns representing each individual text                character represent an outlined defined shape of the                character; and            -   the luminosity values of each differently colored                sub-pixel of a given pixel in the pixel pattern used to                represent a given text character has been determined                based on the extent to which the portion of the                representation of the outline of the character's shape                that corresponds to subpixel is covered by the                character's outline defined shape.        -   SUBSTITUTING FONTS IN DIGITAL CONTENT WITH FONTS WHICH HAVE            DIFFERENT METRICS        -   SUBSTITUTING FONTS IN DIGITAL CONTENT WITH FONTS OPTIMIZED            FOR DISPLAY AT NON-SQUARE RESOLUTION        -   SUBSTITUTING FONTS IN DIGITAL CONTENT WITH FONTS OPTIMIZED            FOR DISPLAY AT 10 PIXELS PER EM OR BELOW            -   FONTS OPTIMIZED FOR 10 PIXELS PER EM OR BELOW        -   SUBSTITUTING FONTS IN DIGITAL CONTENT WITH SUBPIXEL            OPTIMIZED FONTS        -   CHANGING relative FONT SIZE OF SMALL FONTS TO MAKE THEM MORE            READABLE AT SMALL SIZE        -   SCALING DOWN OF FONTS INCREASES THE SIZE OF SMALLER FONTS            RELATIVE TO LARGER FONTS TO PREVENT SMALLER FONTS FROM BEING            DISPLAYED BELOW A GIVEN SIZE.        -   DIGITAL CONTENT IS A WEB PAGE        -   DIGITAL CONTENT IS A VIRTUAL SCREEN IMAGE CREATED BY AN            APPLICATION            F-Group Innovations    -   DISPLAYING ONE LAYOUT OF WEB PAGE AT EACH OF DIFFERENT SCALE        FACTORS, WITH DIFFERENT PIXEL RESOLUTION BITMAPS USED FOR        DISPLAY OF IMAGES AND FONT BITMAPS AT EACH DIFFERENT SCALE        FACTOR, AND SHAPE AND PIXEL ALIGNMENT OF SAME CHARACTER IN FONT        BITMAPS AT DIFFERENT SCALE FACTORS BEING VARIED TO IMPROVE        READABILITY AT EACH SUCH DIFFERENT FONT SIZE        -   1. A method of displaying a web page comprising:        -   accessing a web page's content including one or more images            and one or more strings of displayable text;        -   laying out the web page in a layout space having a            horizontal and a vertical layout resolution, so as to            determine a layout position for each of said images and each            displayable character of said strings in said layout space,            including:        -   treating said images and said displayable characters as            having respective layout sizes in said layout space;        -   flowing displayable characters of said strings of across            line boundaries, based on the layout size of said            displayable characters, by breaking portions of strings that            cross a line boundary into separate single line strings,            each of which fits on a single line in said layout space;            and        -   displaying at least a portion of said laid out web page on a            display screen at a selected scale factor, including:        -   displaying both said images and single line character            strings at locations in said display corresponding to the            positions at which they have been laid out in said layout            space, scaled as a function of said selected scale factor;        -   representing each of said images in said display by a            corresponding bitmap in said display that has a pixel size            relative to the image's layout size determined as a function            of said selected scale factor; and        -   representing a given single line strings by an image            composed from a plurality of separate font bitmaps            representing the characters in said string, where the image            of an individual character of said string has a pixel size            relative to the character's layout size determined as a            function of said selected scale factor;        -   wherein:        -   said display of a given portion of said laid out web page is            performed at each of at least two different selected scale            factors; and        -   the shape and pixel alignment of a character represented by            one of said font bitmap at a given scale factor has been            selected to improve readability as a function of the size of            said font bitmap used to represent the character at the            given scale factor, causing a given character in a given            string in two displays of a given portion of said web page            layout performed at different selected scale factors to be            displayed with font bitmaps of different pixel size that            represent the given character with different shapes and            pixel alignments.        -   RELATIVE SPACING BETWEEN CHARACTERS CHANGED AT DIFFERENT            SCALE FACTORS TO COMPENSATE FOR CHANGES IN RELATIVE WIDTH OF            CHARACTERS AT SUCH DIFFERENT SCALE FACTORS            -   2. A method as in Innovation 1 wherein:            -   said differences in the shape and pixel alignment of                character at said different scale factors cause the                relative horizontal width of the font bitmaps of some                characters to change at different scale factors; and            -   the relative spacing between individual characters in a                given single line strings is changed when displayed at                different scale factors to compensate for such change in                relative character width.        -   FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND            ALIGNMENT HAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE            BOUNDARIES WITH PIXEL BOUNDARIES            -   3. A method as in Innovation 1 wherein:            -   the font bitmaps used to represent text at each of said                different scale factors are anti-aliased bitmaps that                assign a color value to a given screen pixel as a graded                function of a coverage value representing the percent of                the given pixel that is covered by a character shape                being represented by the font bitmap; and            -   the shape and pixel alignment of a given character                represented by a different font bitmap at each of said                different scale factors has been selected to increase                the degree of alignment of edges of the character shape                with pixel boundaries of the font bitmap used at each                such the scale factor.            -   FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL                COVERAGE VALUE AND COLOR BALANCING                -   4. A method as in Innovation 3 wherein:                -   the screen on which the displays are drawn has                    pixels comprised of a given arrangement of                    separately-addressable, differently-colored                    subpixels;                -   the anti-aliased font bitmaps used to compose the                    image of text in said displays are                    subpixel-optimized bitmaps that assign a luminosity                    value to each given subpixel of a screen pixel                    having said given arrangement of differently-colored                    subpixels as a function of:                -   a coverage value representing the percent of the                    given subpixel that is covered by a character shape                    being represented by the font bitmap;                -   in the case of at least some subpixels of said font                    bitmaps, a color balancing distribution of a percent                    of the given subpixel's coverage value from said                    coverage value to coverage values of nearby                    subpixels, including subpixels of different color,                    made to a prevent color imbalance that would result                    from the difference between the given subpixel's                    coverage value and the coverage values of a given                    set of one or more nearby subpixels of different                    colors; and                -   in the case of at least some subpixels of said font                    bitmaps, such a color balancing distribution to the                    given subpixel's coverage value of a portion of                    coverage values from one or more nearby subpixels.                -   COLOR BALANCING DISTRIBUTES ONLY PORTION OF A                    SUBPIXEL'S COVERAGE VALUE THAT CAUSES COLOR                    IMBALANCE WITHIN THE SUBPIXEL'S PIXEL                -    5. A method as in Innovation 4 wherein said color                    balancing distributions only distribute portions of                    a subpixel's coverage value that causes color                    imbalance within the whole pixel of which it is                    part.            -   FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS                HAVE A SHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE                READABILITY AT SUCH A SMALL SIZE                -   6. A method as in Innovation 3 wherein:                -   said anti-aliased font bitmaps used to represent                    text at one selected scale factor include small font                    bitmaps having a small font size of eight pixels per                    em or less; and                -   the shape and pixel alignment of characters                    represented in said small font bitmaps have been                    selected as a function of said small font size to                    increase the degree of alignment of edges of the                    character shape with pixel boundaries of the small                    font bitmap.                -   FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN                    ADVANCE WIDTH OF 4 PIXEL COLUMNS OR LESS                -    7. A method as in Innovation 6 wherein the font                    bitmaps of said small font size represent a majority                    of characters of the Roman alphabet within an                    advance width of 4 pixel columns or less.                -    WITH X-HEIGHT GREATER THAN 4 PIXELS                -    8. A method as in Innovation 7 wherein the font                    bitmaps of said small font size represent a majority                    of lowercase letters with an x-height greater than 4                    pixels.        -   USER ALLOWED TO SUCCESSIVELY SELECTED DIFFERENT SCALE            FACTORS AND DISPLAY IS PERFORMED AT EACH SELECTED SCALE            FACTOR            -   9. A method as in Innovation 1:            -   including providing a user interface that allows a user                to select a succession of different scale factors                selected from among a set of at least two different                selectable scale factors; and            -   wherein said display is performed at each of said                successively selected scale factors.        -   AT LEAST TWO SCALE FACTORS CAUSE DISPLAY TO SHOW IMAGES AT            SIZE SMALLER THAN THAT INDICATED BY WEB PAGE            -   10. A method as in Innovation 1 wherein:            -   the web pages content indicates pixel sizes at which                images are to be displayed; and            -   at least two of said selected scale factors causes said                display to represent said images at pixel sizes smaller                that said indicated sizes.        -   SCALE FACTOR HAVE DIFFERENT VALUE IN HORIZONTAL AND VERTICAL            DIRECTIONS            -   11. A method as in Innovation 1 wherein one or more of                said selected scale factors have different component                values in the horizontal and vertical directions,                causing the scaling of images and characters to be                different in those different directions.        -   SCALE FACTOR HAVE SAME VALUE IN HORIZONTAL AND VERTICAL            DIRECTIONS            -   12. A method as in Innovation 1 wherein one or more of                said scale factors have the same values in the                horizontal and vertical directions, causing the scaling                of images and characters to be the same in those                different directions.        -   IMAGES ARE SUB-PIXEL OPTIMIZATION AT ONE SCALE FACTOR WITH            LUMINANCE ASSIGNED TO EACH SUBPIXEL BEING A FUNCTION OF            LUMINANCE OF ITS COLOR VALUE IN A CORRESPONDING WINDOW IN            HIGHER RESOLUTION IMAGE            -   13. A method as in Innovation 1 wherein:            -   said display screen has pixels each comprised of a given                arrangement of separately-addressable,                differently-colored, differently-positioned subpixels;                and            -   the bitmap used to represent a given image accessed as                part of a web page in said display of a portion of a web                page's layout at one of said selected scale factor is a                subpixel-optimized image that:            -   is scaled relative to the given accessed imaged as a                function of said selected scale factor; and            -   assigns a luminosity to each differently-colored                subpixel in the display of such an image as a function                of the amount of luminosity of the given subpixel's                color in a source image window in the given accessed                image that is associated with the given subpixel;            -   where the source image window associated with each given                subpixel has a position relative to the accessed image                that corresponds to the position of the given subpixel                relative to the subpixel-optimized image, such that the                position of the source image windows associated with                different subpixels of a given pixel vary in                correspondence with the different positions of such                subpixels relative to said pixel.            -   IMAGES ARE SUBPIXEL-OPTIMIZED AT TWO DIFFERENT SCALE                FACTORS, USING SOURCE IMAGE WINDOWS WITH DIFFERENT SIZES                AND POSITIONS RELATIVE TO THE SOURCE IMAGE                -   14. A method as in Innovation 13 wherein:                -   the bitmaps used to represent a given accessed image                    in said display at each of two different selected                    scale factor are two different subpixel-optimized                    images; and                -   these two different subpixel optimized images                    assigns luminosity values to subpixels based on                    source image windows that have different sizes and                    positions relative to the given accessed image.        -   DISPLAY COMPUTER REQUESTS WEB PAGE FROM A REMOTE COMPUTER            OVER A COMPUTER NETWORK, REMOTE COMPUTER ACCESSES WEB PAGE,            LAYS IT OUT, AND DOWNLOADS IMAGES, STRINGS, LINKS, AND            RELATIVE POSITIONS TO DISPLAY COMPUTER, WHICH DISPLAYS THEM.            -   15. A method as in Innovation 1 wherein:            -   said displays at said different scale factor are                performed on a client computer;            -   the client computer requests a web page from a remote                computer over a computer network;            -   said remote computer performs said accessing of the web                page;            -   said remote computer performs said laying out of said                web page;            -   said remote computer downloads a representation of said                images, strings, and layout positions over said computer                network to said client computer; and            -   said client computer performs said display at each of                said different scale factors by drawing said images,                strings, and links at positions and sizes on said screen                corresponding to those in said layout performed on said                remote computer as scaled as a function of said                different scale factors.            -   CLIENT COMPOSES IMAGES OF SAME STRINGS AT DIFFERENT                SCALE FACTORS USING DIFFERENTLY SIZED FONT BITMAPS                HAVING CHARACTER SHAPES AND PIXEL ALIGNMENTS SEPARATELY                SELECTED FOR IMPROVED READABILITY AT SUCH DIFFERENT                BITMAP SIZES                -   16. A method as in Innovation 15 wherein said client                    computer performs said composition of the                    representation of a given single line strings from a                    plurality of font bitmaps at each of said different                    scale factors.            -   QUICKZOOM—REMOTE COMPUTER DOWNLOADS SCALED BITMAP OF                IMAGES SCALED DOWN BY A FIRST SCALE FACTORS, AND CLIENT                DISPLAY WEB PAGE AT FIRST SCALE FACTOR, CLIENT RESPONDS                TO USER INPUT TO DISPLAY IMAGE AT SECOND SCALE FACTOR BY                DISPLAYING LAYOUT A SECOND SCALE FACTOR WITHOUT DOWNLOAD                OF IMAGES SCALED FOR SECOND SCALE FACTOR                -   17. A method as in Innovation 15 wherein:                -   said remote computer scales the images accessed as                    part of said web page to produce said scaled bitmaps                    used to represent said one or more images in the                    display at a first of said two scale factors, which                    scaled bitmaps are transmitted to said client                    computer as part of said download;                -   said client performs said display for said first                    scale factor, including representing images in said                    display with the downloaded image bitmaps that have                    been scaled for said first scale factors;                -   said client computer has a user interface that                    allows a user to select to have the layout displayed                    at a second of said scale factors; and                -   said client computer responds to a selection to                    display the layout at said second scale factor by                    displaying the layout of said web page at said                    second scale factor without a download from said                    remote client of images scaled for display at said                    second scale factor.                -   CLIENT TAKES IMAGES DOWNLOADED TO IT FOR FIRST SCALE                    FACTOR AND RE-SCALES THEM TO PIXEL SIZE APPROPRIATE                    FOR SECOND SCALE FACTOR AND DISPLAYS LAYOUT AT                    SECOND SCALE FACTOR WITH SUCH RESCALED BITMAPS UNTIL                    IT RECEIVES DOWNLOAD WITH BITMAP SCALED BY REMOTE                    COMPUTER FOR SECOND SCALE                -    18. A method as in innovation 17 wherein said                    client's display of the layout of said web page at a                    second scale factor without download from said                    remote client of images scaled for said second scale                    factor includes:                -    re-scaling said images scaled for display at said                    first scale factor to a size appropriate for display                    at said second display factor; and                -    displaying said re-scaled images at positions in                    said display performed at said second scale factor                    corresponding to the layout positions of said images                    at said second scale factor.                -    CLIENT UPLOADS TO REMOTE COMPUTER INFORMATION THAT                    CLIENT SHOULD DOWNLOAD IMAGES SCALED FROM WEB PAGE'S                    IMAGES AT SECOND SCALE FACTOR, AND WHEN CLIENT                    RECEIVES SUCH IMAGES IT USES THEM TO REPLACE THE                    IMAGES IT HAS RESCALED IN SAID DISPLAY OF THE LAYOUT                    AT SAID SECOND SCALE FACTOR.                -    19. A method as in innovation 18 wherein:                -    the client computer also responds to said selection                    to display the layout at said second scale factor by                    uploading to the remote computer an indication that                    the remote client should download images scaled for                    said second scale factor;                -    in response to the uploading of such an indication,                    the remote computer:                -    scales the images accessed as part of said web page                    to produce bitmaps scaled for use in the display at                    said second scale factor; and                -    downloads the images scaled for the second scale                    factor to said client computer; and                -    after the images scaled for second scale factor                    have been downloaded, the client computer uses them                    to replace, in said display of the layout at said                    second scale factor, the previously displayed                    bitmaps that had been re-scaled by the client                    computer.        -   ZOOM TO FIT—USER CAN SELECT A DIFFERENT SCALE FACTOR BY            DRAGGING A POINTING DEVICE ACROSS A SELECTED PART OF WEB            PAGE LAYOUT SHOWN AT A FIRST SCALE FACTOR, CAUSING SELECTED            PART TO BE SHOWN A SECOND SCALE FACTOR CAUSES IT TO FIT            SCREEN            -   20. A method as in innovation 1 further including:            -   providing a user interface that allows a user to drag a                pointing device across a selected part of said web                page's layout shown on said screen at a first scale                factor; and            -   responding to such a drag by performing a zoom-to-fit                display of said selected part of the web page layout at                a second scale factor selected to cause said selected                part of said web page layout to have a size that fits                the size of said screen.            -   IF USER DRAGS ACROSS BOUNDARY OF DISPLAY SHOWN AT FIRST                SCALE FACTOR, DISPLAY SCROLLS, ALLOWING USER TO SELECT                PART OF THE WEB PAGE LAYOUT EITHER TOO LARGE OR                IMPROPERLY POSITIONED TO FIT ON SCREEN AT START OF THE                DRAG                -   21. A method as in innovation 20 wherein:                -   the user interface that allows a user to drag a                    pointing device across a selected part of the web                    page layout responds to such a drag that extends                    across a boundary associated with a given edge of                    said screen by scrolling, onto said screen, across                    said given screen edge, portions of the web page                    layout previously off said screen shown displayed at                    said first scale factor, so as to allow said drag to                    select as said selected part of the web page layout                    a part that was either too large or not properly                    positioned to fit entirely within said screen when                    the drag first started; and                -   said responding to such a drag performs a                    zoom-to-fit display using a second scale factor that                    fits to the screen size the part of the web page                    selected by such a drag.        -   CLICK TO ZOOM            -   22. A method as in innovation 1 further including:            -   providing a user interface that allows a user to click a                pointing device on a selected part of said web page's                layout shown on said screen at a first scale factor; and            -   responding to such a click by performing a display of                said selected part of the web page layout at a second                scale factor that causes said selected part to be shown                at a larger size.        -   DRAG SCROLL AT IN DISPLAYS AT EACH OF DIFFERENT SCALE            FACTORS            -   23. A method as in innovation 1 further including:            -   providing a user interface that allows a user to drag a                pointing device across a part of said web page's layout                shown on said screen at a first scale factor; and            -   responding to such a drag that extends across a boundary                associated with a given edge of said screen by                scrolling, onto said screen, across said given screen                edge, portions of the web page layout previously off                said screen shown displayed at said first scale factor.        -   ZOOMCLICK—SCREEN ZOOMS ON PORTION OF SCREEN USER MOUSEDOWNS            ON, ALLOWS CURSOR TO MOVE WHILE MOUSE IS DOWN, CLICK IS NOT            RECORDED UNTIL USER MOUSEUPS, THEN RETURNS DISPLAY TO FORMER            SIZE            -   24. A method as in innovation 1 further including:            -   responding to a press of a pointing device, made at a                first position relative to a first portion of the web                page layout displayed on said screen at a first scale                factor, by replacing all or part of the display of said                first layout portion with a display of a second, smaller                portion of said web page layout, which includes said                first position, at a second scale factor that causes                said smaller portion to be shown at a larger size;            -   responding to a subsequent releases of said press, made                at a selected position relative to layout shown at said                second scale factor, by:            -   acting as if a mouse click had occurred at said selected                position relative to said web page layout; and            -   replacing the display of said smaller portion on said                screen with a display of the web page layout at said                first scale factor.            -   DISPLAY OF SMALLER PORTION OF WEB PAGE AT SECOND SCALE                FACTOR TOTALLY REPLACES DISPLAY OF WEB PAGE AT FIRST                SCALE FACTOR                -   25. A method as in innovation 24 wherein said                    replacement of all or part of the display of said                    first portion of said web page layout with a display                    of said smaller portion of said layout during the                    press of said pointing device replaces all of the                    display of said first portion of said layout.            -   DISPLAYING CURSOR IN ZOOMED VIEW, INDICATING EFFECTIVE                POSITION OF CURSOR RELATIVE TO LAYOUT, INCLUDING SHOWING                ANY MOVEMENT OF CURSOR BETWEEN PRESS AND RELEASE                -   26. A method as in innovation 24 further including                    displaying a cursor that indicates the position of                    the pointing device relative to the portion of said                    web page layout displayed at said second scale                    factor during said press, to inform a user of the                    location that would be treated as said selected                    position if the pointing device were released at its                    current location.                -   DISPLAY IS TOUCH SCREEN DISPLAY, AND CURSOR IS                    DISPLAYED SLIGHTLY ABOVE POINTING DEVICE SO IT CAN                    BE SEEN OVER POINTING DEVICE                -    27. A method as in innovation 26 wherein:                -    said display is a touch screen display; and                -    said cursor is displayed above the point at which                    the screen is being touched by a pointing device so                    the cursor can be seen over that pointing device.            -   FIRST SELECTED LAYOUT POSITION HAS SUBSTANTIALLY SAME                SCREEN POSITION AFTER ZOOM                -   28. A method as in innovation 24 wherein said first                    layout position, which corresponds to the layout                    position of said pointing device at the time of said                    press, has substantially the same screen position in                    said display at said second scale made in response                    to said press as it did in the display at said first                    scale at the time said press was made.            -   IF USER MOVES POINTING DEVICE DURING PRESS ACROSS                BOUNDARY OF DISPLAY SHOWN AT SECOND SCALE FACTOR,                DISPLAY SCROLLS, ALLOWING USER TO RELEASE PRESS IN                PORTION OF DISPLAY NOT ORIGINALLY SHOWN IN SECOND SCALE                DISPLAY                -   29. A method as in innovation 24 further including                    responding to movement of the pointing device during                    said press that extends across a boundary associated                    with a given edge of said screen by scrolling, onto                    said screen, across said given screen edge, portions                    of the web page layout previously off said screen                    shown displayed at said second scale factor, so as                    to allow said movement to select as said selected                    position relative to the layout a position that was                    not shown on said screen at said second scale when                    said movement during the press first started.        -   ZOOM OUT WITH GREEKING            -   30. A method as in innovation 1 further including:            -   performing a different display of a given portion of                said laid out web page that is similar to that performed                for said at least two different scale factors, except                that said different display:            -   is performed for a zoomed-out scale factor that causes                the size of one or more single line text strings on said                screen to be too small to be read; and            -   represents said one or more single line string with a                greeked bitmap that indicates the size and location of                said string in said layout.    -   REFLOW AT LARGER FONT SIZE THAT FILLS ⅔ OF SCREEN WIDTH OF WEB        TEXT SELECTED WITHIN ONE OF MULTIPLE COLUMNS—        -   31. A method of displaying a web page comprising:        -   accessing a web page's content, including one or more            images, a plurality of strings of displayable text, and a            plurality of horizontal position indications that indicate            that different ones of said strings are to be displayed in            different horizontal columns;        -   performing a first layout of the web page, so as to            determine a first layout position for each of said images            and each displayable character of said strings, in which the            layout positions of the displayable characters of different            strings are placed in different horizontal columns in            response to said horizontal position indications; and        -   drawing, on a screen, a first display of said web page,            which displays the images and strings of said first layout            at relative positions corresponding to said first layout            positions;        -   providing a user interface that allows a user to select a            portion of text shown within a given one of said columns in            said first display;        -   performing a second layout of said selected portion of text,            including re-flowing the selected text across the lines of a            new column at one or more font sizes that are larger            relative to the width of the lines of said new column than            the font sizes of the same texts had relative to the width            of the selected text's column in said first layout; and        -   drawing, on said screen, a second display of said web page,            which displays said new column of text with the line breaks            determined in said second layout, at a scale that causes            said new column to fill at least two thirds of the width of            said screen.        -   USER SELECTS AT WHICH OF DIFFERENT SIZES TO DISPLAY COLUMN            OF TEXT [SUP]            -   32. A method as in Innovation 31 wherein:            -   said user interface allows a user to select from among a                plurality of text display sizes for the display of text                in said new column of text; and            -   wherein said second layout selects the size at which the                selected text is re-flowed across the lines of the new                column relative to said line widths as a function of                said selected text display size.        -   FIRST DISPLAY SHOWS IMAGES AT SCALED-DOWN PIXEL SIZE AND            TEXT AT 10 PIXEL'S PER EM OR LESS TO ALLOW MORE OF SAID            FIRST LAYOUT TO APPEAR ON SAID SCREEN AT ONE TIME            -   33. A method as in Innovation 31 wherein said first                display represents images accessed as part of said web                page at a scaled-down pixel size and represents text                strings at a font size of 10 pixels per em or less to                allow more of said first layout to appear on said screen                at one time, so as to make it easier for the user to                select text from different columns in said first layout.            -   FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND                ALIGNMENT HAVE BEEN SELECTED TO INCREASE ALIGNMENT OF                SHAPE BOUNDARIES WITH PIXEL BOUNDARIES                -   34. A method as in Innovation 33 wherein:                -   said text strings represented at a font size of 10                    pixels per em or less have individual characters                    represented by anti-aliased font bitmaps that assign                    a color value to a given screen pixel as a graded                    function of a coverage value representing the                    percent of the given pixel that is covered by a                    character shape being represented by the font                    bitmap; and                -   the shape and pixel alignment of a character                    represented by such a font bitmap has been selected                    to increase the degree of alignment of edges of the                    character shape with pixel boundaries of the font                    bitmap as a function of the particular pixel size of                    each such a font bitmap.                -   FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON                    SUBPIXEL COVERAGE VALUE AND COLOR BALANCING                -    35. A method as in Innovation 34 wherein:                -    the screen on which first and second displays are                    drawn has pixels comprised of a given arrangement of                    separately-addressable, differently-colored                    subpixels;                -    the anti-aliased font bitmaps used to represent                    said text strings at 10 pixels per em or less are                    subpixel-optimized bitmaps that assign a luminosity                    value to each given subpixel of said screen as a                    function of:                -    a coverage value representing the percent of the                    given subpixel that is covered by a character shape                    being represented by the font bitmap;                -    in the case of at least some subpixels of said font                    bitmaps, a color balancing distribution of a percent                    of the given subpixel's coverage value from said                    coverage value to coverage values of nearby                    subpixels, including subpixels of different color,                    made to a prevent color imbalance that would result                    from the difference between the given subpixel's                    coverage value and the coverage values of a given                    set of one or more nearby subpixels of different                    colors; and                -    in the case of at least some subpixels of said font                    bitmaps, such a color balancing distribution to the                    given subpixel's coverage value of a portion of                    coverage values from one or more nearby subpixels.                -    COLOR BALANCING DISTRIBUTES ONLY PORTION OF A                    SUBPIXEL'S COVERAGE VALUE THAT CAUSES COLOR                    IMBALANCE WITHIN THE SUBPIXEL'S PIXEL                -    36. A method as in Innovation 35 wherein said color                    balancing distributions only distribute portions of                    a subpixel's coverage value that causes color                    imbalance within the whole pixel of which it is                    part.                -   FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR                    CHARACTERS HAVE A SHAPE AND PIXEL ALIGNMENT SELECTED                    TO IMPROVE READABILITY AT SUCH A SMALL SIZE                -    37. A method as in Innovation 34 wherein:                -    said anti-aliased font bitmaps used to represent at                    least some of said text strings in said first                    display include small font bitmaps having a small                    font size of eight pixels per em or less; and                -    the shape and pixel alignment of characters                    represented in said small font bitmaps have been                    selected as a function of said small font size to                    increase the degree of alignment of edges of the                    character shape with pixel boundaries of the small                    font bitmap.                -    FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS                    WITHIN ADVANCE WIDTH OF 4 PIXEL COLUMNS OR LESS                -    38. A method as in Innovation 37 wherein the font                    bitmaps of said small font size represent a majority                    of characters of the Roman alphabet within an                    advance width of 4 pixel columns or less.                -    WITH X-HEIGHT GREATER THAN 4 PIXELS                -    39. A method as in Innovation 38 wherein the font                    bitmaps of said small font size represent a majority                    of lowercase letters with an x-height greater than 4                    pixels.        -   ZOOM OUT WITH GREEKED STRING REPRESENTATION            -   40. A method as in innovation 31 wherein said first                display of said web page:            -   is performed at a zoomed-out scale that causes the size                of one or more text strings on said screen in said first                display to be too small to read; and            -   represents of a text of said one or more text strings                with a greeked bitmap that indicates the size and                location of said strings in said layout.    -   LAYING OUT AND DISPLAYING WEB PAGE AT DIFFERENT RELATIVE LAYOUT        SIZES IN WHICH IMAGES AND TEXT HAVE DIFFERENT SIZES RELATIVE TO        THE LAYOUT SPACE AND DIFFERENT PIXEL SIZES, AND IN WHICH TEXT        FLOWS DIFFERENTLY ACROSS LINE BOUNDARIES        -   41 A method of displaying a web page comprising:        -   accessing a web page's content, including one or more images            and one or more strings of displayable text;        -   laying out the web page in a layout space having a            horizontal and a vertical layout resolution, so as to            determine a layout position for each of said images and each            displayable character of said strings in said layout space,            including:        -   treating said images and said displayable characters as            having respective layout sizes in said layout space;        -   flowing displayable characters of said strings of across            line boundaries, based on the layout size of said            displayable characters, by breaking portions of strings that            cross a line boundary into separate single line strings,            each of which fits on a single line in said layout space;            and        -   displaying at least a portion of said laid out web page on a            display screen at a given scale factor, including:        -   displaying both said images and single line character            strings at locations in said display corresponding to the            positions at which they have been laid out in said layout            space, scaled as a function of said given scale factor;        -   representing each of said images in said display by a            corresponding bitmap in said display that has a size            relative to the image's layout size determined as a function            of said given scale factor;        -   representing a given single line strings by an image            composed from a plurality of separate font bitmaps            representing the characters in said string, where the image            of an individual character of said string has a pixel size            relative to the character's layout size determined as a            function of said selected scale factor;        -   performing said layout and display of said web page at each            of at least two different relative layout sizes; -wherein:        -   the layout performed at a first of said relative layout            sizes lays out said images and strings at a first,            relatively small, set of respective sizes relative to said            layout space;        -   the layout at a second of said relative layout sizes lays            out said images and strings at a second, relatively large,            set of respective sizes relative to said layout space; and        -   the given scale factor used in the displays performed at the            first and second relative layout sizes is such that the            images and text appear at smaller pixel sizes in the display            of the layout performed at said first relative layout size            and appear at larger pixel sizes in the display of the            layout performed at said second relative layout size; and        -   causing text to be flowed across line boundaries differently            at said different relative layout sizes.        -   DISPLAY COMPUTER REQUESTS WEB PAGE FROM A REMOTE COMPUTER            OVER A COMPUTER NETWORK, REMOTE COMPUTER ACCESSES WEB PAGE,            LAYS IT OUT AT EACH OF SAID RELATIVE LAYOUT SIZES, AND            DOWNLOADS IMAGES, STRINGS, LINKS, AND RELATIVE POSITIONS            ASSOCIATED WITH EACH SUCH LAYOUT TO DISPLAY COMPUTER, WHICH            DISPLAYS THEM            -   42. A method as in Innovation 41 wherein:            -   said displays at said different relative layout sizes                are performed on a client computer system;            -   the client computer system requests said web page from a                remote computer system over a computer network;            -   said remote computer system performs said accessing of                the web page;            -   said remote computer system performs said laying out of                said web page at each of said relative layout sizes;            -   said remote computer system downloads a representation                of said images, strings, and layout positions over said                computer network to said client computer system for each                of said relative layout sizes; and            -   said client computer system performs said display at                each of said different relative layout sizes by drawing                said images, strings, and links at relative positions                and sizes on said screen corresponding to those in said                layouts performed on said remote computer.            -   CLIENT COMPOSES IMAGES OF SAME STRINGS AT DIFFERENT                RELATIVE LAYOUT SIZES                -   43. A method as in Innovation 42 wherein said client                    computer system performs said composition of the                    representation of single line strings at each of                    said relative layout sizes from a plurality of font                    bitmaps corresponding to the characters of said                    strings.        -   FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND            ALIGNMENT HAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE            BOUNDARIES WITH PIXEL BOUNDARIES, AT LEAST AT FIRST RELATIVE            LAYOUT SIZE            -   44. A method as in Innovation 41 wherein:            -   at least in said display performed for the layout using                said first relative layout size, one or more of said                single line strings are represented at a font size of 10                pixels per em or less and have individual characters                represented by anti-aliased font bitmaps that assign a                color value to a given screen pixel as a graded function                of a coverage value representing the percent of the                given pixel that is covered by a character shape being                represented by the font bitmap; and            -   the shape and pixel alignment of a character represented                by such a font bitmap has been selected to increase the                degree of alignment of edges of the character shape with                pixel boundaries of the font bitmap as a function of the                particular pixel size of each such a font bitmap.            -   FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL                COVERAGE VALUE AND COLOR BALANCING                -   45. A method as in Innovation 44 wherein:                -   the screen on which displays are drawn has pixels                    comprised of a given arrangement of                    separately-addressable, differently-colored                    subpixels;                -   the anti-aliased font bitmaps used to represent said                    text strings at 10 pixels per em or less are                    subpixel-optimized bitmaps that assign a luminosity                    value to each given subpixel of said screen as a                    function of:                -   a coverage value representing the percent of the                    given subpixel that is covered by a character shape                    being represented by the font bitmap;                -   in the case of at least some subpixels of said font                    bitmaps, a color balancing distribution of a percent                    of the given subpixel's coverage value from said                    coverage value to coverage values of nearby                    subpixels, including subpixels of different color,                    made to a prevent color imbalance that would result                    from the difference between the given subpixel's                    coverage value and the coverage values of a given                    set of one or more nearby subpixels of different                    colors; and                -   in the case of at least some subpixels of said font                    bitmaps, such a color balancing distribution to the                    given subpixel's coverage value of a portion of                    coverage values from one or more nearby subpixels.                -   COLOR BALANCING DISTRIBUTES ONLY PORTION OF A                    SUBPIXEL'S COVERAGE VALUE THAT CAUSES COLOR                    IMBALANCE WITHIN THE SUBPIXEL'S PIXEL                -    46. A method as in Innovation 45 wherein said color                    balancing distributions only distribute portions of                    a subpixel's coverage value that causes color                    imbalance within the whole pixel of which it is                    part.            -   FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS                HAVE A SHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE                READABILITY AT SUCH A SMALL SIZE                -   47. A method as in Innovation 44 wherein:                -   said anti-aliased font bitmaps include small font                    bitmaps having a small font size of eight pixels per                    em or less; and                -   the shape and pixel alignment of characters                    represented in said small font bitmaps have been                    selected as a function of said small font size to                    increase the degree of alignment of edges of the                    character shape with pixel boundaries of the small                    font bitmap.                -   FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN                    ADVANCE WIDTH OF 4 PIXEL COLUMNS OR LESS                -    48. A method as in Innovation 47 wherein the font                    bitmaps of said small font size represent a majority                    of characters of the Roman alphabet within an                    advance width of 4 pixel columns or less.                -    WITH X-HEIGHT GREATER THAN 4 PIXELS                -    49. A method as in Innovation 48 wherein the font                    bitmaps of said small font size represent a majority                    of lowercase letters with an x-height greater than 4                    pixels.        -   IMAGES ARE SUB-PIXEL OPTIMIZATION AT ONE RELATIVE LAYOUT            SIZE WITH LUMINANCE ASSIGNED TO EACH SUBPIXEL BEING A            FUNCTION OF LUMINANCE OF ITS COLOR VALUE IN A CORRESPONDING            WINDOW IN HIGHER RESOLUTION IMAGE            -   50. A method as in Innovation 41 wherein:            -   said display screen has pixels each comprised of a given                arrangement of separately-addressable,                differently-colored, differently-positioned subpixels;                and            -   the bitmaps used to represent a given image accessed as                part of a web page in said display of the layout                performed at one given relative layout size are                subpixel-optimized images, each of which:            -   is scaled relative to the given accessed imaged as a                function of said one given relative layout size; and            -   assigns a luminosity to each differently-colored                subpixel in the display of such an image as a function                of the amount of luminosity of the given subpixel's                color in a source image window in the given accessed                image that is associated with the given subpixel;            -   where the source image window associated with each given                subpixel has a position relative to the accessed image                that corresponds to the position of the given subpixel                relative to the subpixel-optimized image, such that the                position of the source image windows associated with                different subpixels of a given pixel varies in                correspondence with the different positions of such                subpixels relative to said given pixel.            -   IMAGES ARE SUBPIXEL-OPTIMIZED AT BOTH RELATIVE LAYOUT                SIZES, USING SOURCE IMAGE WINDOWS WITH DIFFERENT SIZES                AND POSITIONS RELATIVE TO THE SOURCE IMAGE                -   51. A method as in Innovation 50 wherein:                -   the bitmaps used to represent a given accessed image                    in said displays performed for both of said two                    different relative layout sizes are two different                    subpixel-optimized images; and                -   these two different subpixel optimized images                    assigns luminosity values to subpixels based on                    source image windows that have different sizes and                    positions relative to the given accessed image.    -   52. MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION        -   52. A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 51; and        -   one or more processors for executing said instructions.    -   53. MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE        MEDIA INNOVATION        -   53. A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 51.    -   DISPLAY OF WEB PAGE, INCLUDING LAYOUT OF WEB PAGE WITH A GIVEN        RESOLUTION, WHEN USER ZOOMS SO AS TO CHANGE RATIO OF DISPLAY        RESOLUTION TO LAYOUT RESOLUTION, PAGE IS RE-LAID OUT TO REFLECT        CHANGE IN FONT METRICS OF FONTS USED DISPLAY TEXT IN WEB PAGE AT        DIFFERENT DISPLAY RESOLUTION, REFLOW TEXT TO ACCOMMODATE        DIFFERENTLY HINTED TEXT AT DIFFERENT SCALE VIEWS OF WEB PAGE AT        A GIVEN NOMINAL LAYOUT RESOLUTION        -   USING SUB-PIXEL OPTIMIZED TEXT IN DISPLAY        -   LAYOUT IS PERFORMED ON FIRST COMPUTER, LAYOUT INFORMATION IS            DOWNLOADED TO A SECOND, BROWSER, COMPUTER, AND IS DISPLAYED            ON BROWSER COMPUTER            -   USER CAN SELECTS TO VARY ZOOM ON BROWSER, THIS SELECTION                IS UPLOADED TO FIRST COMPUTER, FIRST COMPUTER RE-LAYS                OUT WEB PAGE IN RESPONSE TO CHANGE IN FONT METRICS                RESULTING FROM CHANCE IN DISPLAY RESOLUTION                -   REMOTE PROCESS CAN DOWNLOAD REST OF ZOOMED PAGE                    WHICH CAN BE CACHED.    -   DISPLAY OF WEB PAGE, INCLUDING LAYOUT OF WEB PAGE WITH A GIVEN        RESOLUTION, WHEN USER ZOOMS SO AS TO CHANGE RATIO OF DISPLAY        RESOLUTION TO LAYOUT RESOLUTION, PAGE IS NO RELAID TO REFLECT        CHANGE IN FONT METRICS OF FONTS USED DISPLAY TEXT IN WEB PAGE AT        DIFFERENT DISPLAY RESOLUTION        -   ACCOMMODATE DIFFERENTLY HINTED TEXT AT DIFFERENT ZOOM SCALES            BY ADJUSTING SPACING BETWEEN WORDS IN INDIVIDUAL STRINGS        -   ACCOMMODATE DIFFERENTLY HINTED TEXT AT DIFFERENT ZOOM SCALES            BY ADJUSTING SPACING BETWEEN INDIVIDUAL CHARACTERS IN WORDS            IN INDIVIDUAL STRINGS        -   LAYOUT IS PERFORMED ON FIRST COMPUTER, LAYOUT INFORMATION IS            DOWNLOADED TO A SECOND, BROWSER, COMPUTER, AND IS DISPLAYED            ON BROWSER COMPUTER            -   USER CAN SELECTS TO VARY ZOOM ON BROWSER, THIS SELECTION                IS UPLOADED TO FIRST COMPUTER                -   FIRST COMPUTER DETERMINES WHICH PORTION OF PRIOR                    LAYOUT IS IN SELECTED ZOOMED VIEW AND DOWNLOADS THAT                    INFORMATION BROWSER, WHICH DISPLAYS IT USING FONTS                    OF A DIFFERENT SIZE TO REFLECT NEWLY SELECTED ZOOM            -   BROWSER DETERMINES WHICH PORTION OF PREVIOUSLY                DOWNLOADED PAGE IS IN VIEW HAVING NEWLY ZOOM VALUE, AND                REDISPLAYS IT USING FONTS OF A DIFFERENT SIZE TO REFLECT                NEWLY SELECTED ZOOM    -   ZOOM-TO-FIT        -   A method of browsing the web comprising:        -   downloading a web page from across a computer network;        -   producing a first display of at least a portion of said web            page at a first scale;        -   responding to a user's selection of a given portion of said            first display by producing a second display of a portion of            said web page including said selected portion, where said            second display is at a second scale automatically selected            to cause the size of the portion of said web page shown in            said second display to correspond to the size of said            selected portion.        -   SELECTION MADE BY DRAGGING ACROSS FIRST DISPLAY            -   A method as in the parent innovation wherein said user's                selection of a given portion of said first display is                performed by dragging a cursor across the selected                portion of said first display.            -   DRAGGING A RECTANGLE AROUND PORTION OF SCREEN TO BE                ZOOMED TO                A method as in the parent innovation wherein said user's                selection of a given portion of said first display is                performed by dragging a rectangle around the selected                portion of said first display.            -   DRAGGING A LINE ACROSS SCREEN WHICH IS TO BE IN THE                UPPER ONE THIRD OF ZOOMED VIEW                -   A method as in the parent innovation wherein:                -   said user's selection of a given portion of said                    first display is performed by dragging a horizontal                    line across the selected portion of said first                    display; and                -   the portion of the web page shown in the second                    display automatically places the portion of the web                    page corresponding to said line in the upper one                    third of said second display            -   FIRST DISPLAY CAN SCROLL DURING DRAG TO ALLOW SELECTION                TO INCLUDE PORTION OF WEB PAGE WAS NOT ON SCREEN AT                START OF DRAG                -   A method as in the parent innovation wherein said                    first display can scroll during, and in response to,                    said dragging so as to enable said selected portion                    to include portions of said web page which was not                    shown in said first display at the start of said                    drag.        -   SELECTION MADE BY INDICATING AN OBJECT WITHIN SAID FIRST            DISPLAY, AND METHOD AUTOMATICALLY MAKES THE SELECTED PORTION            OF WEB PAGE CORRESPONDING TO THE WIDTH AND/OR HEIGHT OF THE            INDICATED OBJECT            -   A method as in the parent innovation wherein:            -   said user's selection of a given portion of said first                display is performed by indicating an object shown in                the first display; and            -   said method automatically defines the selection portion                of said first display as being the portion of that                display which corresponds to the width and/or height of                said indicated object.            -   SELECTION IS BY CLICKING ON OBJECT                -   A method as in the parent innovation wherein said                    indication of an object is performed by clicking on                    said object.            -   OBJECT IS IMAGE, CONTROL, CELL WITHIN TABLE, FRAME, OR                AUTOMATICALLY IDENTIFIABLE GROUPING OF TEXT                -   A method as in the parent innovation wherein said                    object is either an image, a control, a cell within                    a web page table, a frame of a web page, or an                    automatically identifiable grouping of text.        -   CAN DO QUICKZOOM WITH LOWER RESOLUTION IMAGE UNTIL GET            HIGHER RESOLUTION ONE        -   CAN SELECT DOWNLOAD OF NON-SCALED IMAGES INDIVIDUALLY        -   CAN SCALE IMAGES UP OR DOWN, AND IF THEY ARE LARGER THAN            FITS ON SCREEN AT A GIVEN RESOLUTION CAN SCROLL A PEEP-HOLE            THROUGH THEM        -   ZOOM TO FIT THE WIDTH OF A TEXT CONTAINER    -   ZOOM WEB CONTENT BY USING DIFFERENT RES. FONT BITMAPS BUT        KEEPING SAME LINE BREAKS        -   A method of browsing web comprising:        -   downloading a web page from across a computer network;        -   laying out the position of the web page's visible text            and/or images in a layout space having horizontal and            vertical layout pixel resolutions, including:        -   treating each image as having a layout size in said layout            space;        -   treating each character in the visible text as having a            horizontal and vertical layout pixel size in said layout            space;        -   flowing the visible text across line boundaries by breaking            portions of text which cross a line boundary into separate            single line character strings, each of which fits on a line            in said layout space; and        -   producing a first display of at least a portion of said web            page at a first scale having a pixel resolution that            corresponds to the horizontal and vertical layout            resolutions multiplied by first horizontal and vertical            scale factors, respectively, including:        -   displaying both said images and single line character            strings at display screen locations corresponding to the            locations at which they have been laid out in said layout            space, adjusted in the horizontal and vertical direction as            a function of both said first horizontal and vertical            scaling factors, respectively;        -   representing each of said images in said first display by a            pixel pattern that has been scaled from the image's layout            size as a function of said first horizontal and vertical            scaling factors;        -   representing each of individual characters in each single            line text strings in said first display by a pixel pattern            which has a size that relates to the character's horizontal            and vertical layout pixel size as a function of said first            horizontal and vertical scaling factors, respectively;        -   responding to a user's selection to display a portion of            said web page at a second scale by producing a second            display of at least a portion of said web page at a pixel            resolution which corresponds to the horizontal and vertical            layout resolutions multiplied by second horizontal and            vertical scale factors, respectively, including:        -   representing each of said images in said second display by a            pixel pattern that has been scaled down from the image's            layout size as a function of said second horizontal and            vertical scaling factors;        -   representing each of said individual characters in the            single line text strings by a pixel pattern which has a size            that relates to the character's horizontal and vertical            layout pixel size as a function of said second horizontal            and vertical scaling factors, respectively;        -   wherein:        -   the ratio of the horizontal size of the pixel patterns of at            least some individual characters in said first and second            displays differs from the ratio of said first and second            horizontal scaling factors;        -   this difference in ratio causes the relative location of            individual characters in different single line character            strings to vary between said first and second displays; but        -   the fact that the same single line character strings are            displayed in both the first and second displays prevents            this difference in ratio from changing which portions of            text appear on a given line in the different displays.        -   BROWSER REQUESTS WEB PAGE THROUGH PROXY; PROXY REQUESTS PAGE            FROM REMOTE SITE; WHEN PROXY RECEIVES PAGE IT LAYS IT OUT            AND DOWNLOADS ITS IMAGES AND CHARACTER STRING ELEMENTS, AND            THE LOCATIONS AT WHICH THOSE ELEMENTS ARE TO BE DISPLAYED;            THE BROWSER DISPLAYS THE ELEMENTS AT A FIRST SCALE, WHEN THE            USER SELECTS A SECOND SCALE, THE BROWSER REDISPLAYS THE            ELEMENTS AT A SECOND SCALE AND A LOCATIONS THE DISTANCE            BETWEEN ARE SIMILARLY SCALED WITHOUT OBTAINING NEW DISPLAY            LOCATIONS FROM THE BROWSER            -   BROWSER SCALES BITMAP OF IMAGE AT A FIRST SCALE AND USES                IT IN SECOND DISPLAY AT SECOND SCALE                -   BROWSER CAN REQUEST LARGER VERSION OF IMAGE FOR                    DISPLAY AT SECOND SCALE            -   IF BROWSERS ALREADY HAS STORED ON IT FONTS OF                APPROPRIATE SIZE FOR SECOND SCALE IT DISPLAYS TEXT IN                SECOND SCALING WITH THOSE FONTS WITHOUT THE NEED TO                OBTAIN THOSE FONTS FROM PROXY            -   PROXY SENDS DOWN IMAGE AT DIFFERENT SCALE FOR SECOND                DISPLAY        -   SUB-PIXEL OPTIMIZED FONTS USED IN DISPLAY OF AT LEAST ONE OF            TWO SCALES        -   AS FONT SIZE CHANGES METRICS OF CHARACTERS OF FONT DO NOT            ALWAYS CHANGE IN SAME PROPORTION        -   CLIENT SMART ENOUGH ADD OR SUBTRACT SPACE BETWEEN BITMAPS-SO            THIS CAN BE DONE WITHOUT COMMUNICATION WITH PROXY        -   COULD BE DONE WITH OUTLINE FONTS        -   WITH FONT SERVING        -   ZOOM-TO-FIT            -   A method as in the parent innovation wherein:            -   said user's selection to display a portion of said web                page at a second scale is performed by the user's                selection of a given portion of said first display;            -   said responding to said users selection includes                producing a second display of a portion of said web page                including said selected portion; and            -   said second scale is automatically selected to cause the                size of the portion of said web page shown in said                second display to correspond to the size of said                selected portion.    -   QUICKZOOM—I.E., BROWSER INTERFACE CONTROLS FOR ALLOWING        QUICKZOOM OF ALL OR A PORTION OF DISPLAYED WEB PAGE        -   QUICKZOOM WHICH DOES BLOW UP OF LOWER RESOLUTION IMAGE DATA            FOR ZOOM BUT WHICH USES HIGHER RESOLUTION FONT BITMAPS TO            REPRESENT ZOOMED TEXT IF IT HAS THEM AVAILABLE            -   IF NOT, CAN SUBSTITUTE THEM INTO QUICKZOOM AS SOON AS                GET THEM        -   AS SOON AS GET HIGHER RESOLUTION VERSION OF A ZOOM IMAGE,            THE BROWSER REPLACES QUICKZOOMED VERSION WITH THE HIGHER            RESOLUTION IMAGE        -   QUICKZOOM UPSCALES SUB-PIXEL OPTIMIZED IMAGE COLOR BITMAP        -   THERE COULD BE A 2× (OR OTHER SCALE) ZOOM BUTTON IN THE            BROWSERS USER INTERFACE WHICH WOULD ALLOW A USER TO PERFORM            A 2× ZOOM AROUND THE LAST PLACED CLICKED        -   AUTOMATICALLY DOWNLOADING MULTIPLE RESOLUTIONS, SUCH AS A            STANDARD 0.5× AND 1× SO CAN QUICKZOOM BETWEEN THE TWO AND            HAVE HIGHER RESOLUTION IMAGE READY FOR ZOOM SHORTLY AFTER            DOWNLOAD            -   USER COULD SPECIFY WHAT TYPE OF UNSHOWN BUT POSSIBLY OF                INTEREST ELEMENTS HE OR SHE WANTS SHOWN SUCH AS                -   ELEMENTS FOR USE IN ZOOM                -   ELEMENTS FOR USE IN SCROLLING AT CURRENT RESOLUTION    -   ZOOMCLICK—SCREEN DOES A QUICKZOOM ON PORTION OF SCREEN USER        MOUSE DOWNS ON, BUT CLICK IS NOT RECORDED UNTIL USER DOES A        MOUSE UP. THIS LETS USER MOVE MOUSE TO DESIRED POSITION IN A        LARGER SCALE VIEW IN WHICH IT IS EASIER TO LOCATION DESIRED        SCREEN OBJECTS BEFORE MAKING A SELECTION        -   USER CAN TURN ON AND OFF THIS FEATURE    -   ZOOM TEXT ENTRY—I.E., WHEN USER CLICK OR OTHERWISE SELECTS A        TEXT ENTRY FIELD SHOWN ON A SCREEN AT A FIRST SIZE, A ZOOMED        TEXT ENTRY FIELD IS SHOWN AT A LARGER SIZE        -   IN ONE EMBODIMENT, A KEYBOARD AND A SEPARATE TEXT ENTRY            FIELD POP UP ON THE SCREEN WHEN A USER CLICKS ON ANY TEXT            ENTRY FIELD SHOWN IN A WEB PAGE. ONCE THE USER PRESSES AN            ENTER BUTTON ASSOCIATED WITH THE LARGE POP-UP TEXT ENTRY            FIELD, THESE POP-UP ELEMENTS DISAPPEAR FROM THE SCREEN        -   IN ANOTHER EMBODIMENT, THE IMAGE COULD ZOOM IN ON THE ACTUAL            TEXT ENTRY FIELD THE USER HAS CLICKED ON, IN A MANNER            SIMILAR TO THE ZOOM CLICK DESCRIBED ABOVE        -   WHEN THE USER SELECTS A TEXT ENTRY FIELD A KEYBOARD POPS UP            ON THE SCREEN        -   WHEN THE USER SELECTS A TEXT ENTRY FIELD A HANDWRITING            RECOGNITION FIELD POPS UP ON THE SCREEN        -   WHEN THE USER SELECTS A TEXT ENTRY FIELD A VOICE RECOGNITION            ENTRY FIELD POPS UP ON THE SCREEN    -   MAGNIFYING GLASS—I.E., A WEB BROWSER IN WHICH A PORTION OF        SMALLER SCALE SCREEN VIEW OF WEB CONTENT IS ZOOMED, WITH PORTION        OF SMALLER SCALE SCREEN SHOWN IN ZOOMED SCALE MOVING AROUND AS        USER MOVES OR CLICK POINTING DEVICE        -   USER CAN TOGGLE BETWEEN MAGNIFIED AND NORMAL SMALL SCALE            SCREEN        -   IN ZOOM VIEW TEXT IS SHOWN IN HIGHER RES FONT, WITHOUT            REFLOW        -   USES QUICKZOOMED VERSIONS OF IMAGES FROM SMALL SCALE VIEW            UNTIL OR UNLESS HAVE HIGHER RES VERSION OF THEM        -   COULD HAVE VARIABLE ZOOM SCALE    -   RAPID ZOOM CONTROLS—I.E., BROWSER WITH USER INTERFACE HAVING        BUTTONS WHICH ALLOW USER TO RAPIDLY CHANGE BETWEEN DIFFERENT        SCALE VIEWS OF WEB PAGE        -   BROWSER USER INTERFACE HAS A ZOOM BUTTON OR COMMAND WHICH IF            SELECTED BEFORE OR AFTER USER SELECTS A PORTION OF            SCREEN-ZOOMS TO THAT PORTION        -   BROWSER USER INTERFACE RECORDS HISTORY OF ZOOM SIZES, AND            HAS A BACK AND FORWARD CONTROL, SIMILAR TO THAT USED FOR            HISTORY OF WEB PAGES, TO ALLOW USER TO GO BACK AND FORTH            BETWEEN DIFFERENT VIEWS OF A GIVEN PAGE            -   VIEW HISTORY NOT ONLY RECORDS SIZE BUT ALSO LOCATION OF                VIEWS, SO USER CAN NAVIGATE BACK AND FORTH BETWEEN VIEWS                OF A GIVEN WEB PAGE AT DIFFERENT LOCATIONS AND/OR SIZES        -   WITH SYSTEM CACHING INFORMATION HELPFUL FOR DISPLAY AT            DIFFERENT SIZES        -   USING DIFFERENT FONTS FOR DIFFERENT VIEWS        -   WITH QUICKZOOM SCALING OF PRIOR VIEW IF DON'T HAVE NEW VIEW            IN LOCAL MEMORY        -   WITH REMOTE PROCESS GENERATING ALTERNATE ZOOMED VIEWS        -   WITH SUB-PIXEL OPTIMIZATION    -   ZOOM OUT & FULL PAGE VIEW—I.E., ZOOM OUT TO SEE WHOLE PAGE (OR        AT LEAST WHAT WOULD BE MULTIPLE NORMAL SCREENS)        -   THIS COULD USE GREEKING FOR ALL TEXT BELOW A CERTAIN SIZE,            AND SHADING FOR ALL TEXT OF EVEN A SMALLER SIZE    -   CENTERCLICK—I.E., A WEB BROWSER WHICH ALLOWS A USER TO ZOOM TO A        IN PEEPHOLE VIEW (A VIEW THAT SHOWS ONLY A PORTION OF THE WIDTH        AT WHICH A PAGE HAS BEEN LAID OUT AT) AND WHICH ALLOWS THE USER        TO RECENTER THE PEEPHOLE VIEW WHERE THE USER CLICKS    -   SUB-PIXEL OPTIMIZED WEB BROWSING WITH VARIABLE ZOOM        -   SYSTEMS INTERFACE ALLOWS USER TO SELECTED AMONG THREE OR            MORE DIFFERENT SCALINGS    -   USER VARIABLE VIRTUAL WEB RESOLUTIONS WITH FONTS OPTIMIZED FOR        DISPLAY'S PIXELATION AT EACH RESOLUTION    -   USER VARIABLE VIRTUAL WEB RESOLUTION WITH SUB-PIXEL OPTIMIZATION        -G-Group Innovations    -   METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM GENERATE        THE LAYOUT OF A WEB PAGE TO BE DISPLAYED ON THE SCREEN OF SECOND        COMPUTER SYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO        SAID SECOND COMPUTER SYSTEM, IN WHICH ONE OR MORE ELEMENTS IN        WEB PAGE DISPLAY ARE SCALED DOWN BY THE PROCESS ON THE FIRST        COMPUTER BEFORE BEING DOWNLOADED TO AND DISPLAYED BY THE SECOND        COMPUTER AND IN WHICH A FONT FAMILY IS USED BY THE FIRST        COMPUTER IN THE LAYOUT AND IN THE SECOND COMPUTER FOR THE        DISPLAY WHICH HAS BEEN SELECTED FOR READABILITY AT PIXEL SIZES        OF 10 PIXELS PER EM OR LESS        -   WIRELESS COMMUNICATION IS USED BETWEEN FIRST COMPUTER AND            SECOND COMPUTER        -   WEB PAGE SPECIFIES CERTAIN FONTS FOR CERTAIN TEXT, AND FIRST            COMPUTER PERFORMS LAYOUT AND SECOND COMPUTER DISPLAYS THE            CERTAIN TEXT WITH DIFFERENT FONTS WHICH HAVE BEEN OPTIMIZED            FOR READABILITY AT PIXEL SIZES OF 10 PIXELS PER EM OR LESS.        -   FONT FAMILY HAS BEEN OPTIMIZED FOR READABILITY AT PIXEL            SIZES OF 8 PIXELS PER EM OR LESS        -   FIRST COMPUTER MAKES FOREGROUND COLOR CHANGES TO TEXT            ELEMENTS WHICH ARE DISPLAYED TO INCREASE THE READABILITY OF            SUBPIXEL OPTIMIZED FONTS        -   WITH THE SECOND COMPUTER SYSTEM HAVING A USER INTERFACE            ALLOWING THE USER TO CHANGE THE SCALE FACTOR AT WHICH            ELEMENTS GENERATED ON THE FIRST COMPUTER SYSTEM ARE            DISPLAYED ON THE SECOND COMPUTER SYSTEM, AND SAID SCALE            FACTOR IS UPLOADED FROM THE SECOND COMPUTER TO THE FIRST            COMPUTER WHICH USES IT BOTH IN DETERMINING HOW MUCH TO SCALE            DOWN ELEMENTS IN THE WEB PAGE, INCLUDING DETERMINING THE            SIZE FOR THE FONTS TO BE USED IN THE DISPLAY OF THE WEB PAGE            BY THE SECOND COMPUTER        -   SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT            -   NON-LINEAR COLOR BALANCING IS USED IN THE SUBPIXEL                OPTIMIZATION OF TEXT        -   SUBPIXEL OPTIMIZED ELEMENTS ARE IMAGES        -   SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT AND IMAGES AND A            DIFFERENT ALGORITHM IS USED TO SUBPIXEL OPTIMIZE FONTS AND            IMAGES    -   METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM REPEATEDLY        GENERATE INFORMATION TO BE DISPLAYED ON THE SCREEN OF SECOND        COMPUTER SYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO        SAID SECOND COMPUTER SYSTEM, IN WHICH INFORMATION GENERATED BY        THE FIRST COMPUTER IS DOWNLOADED TO THE SECOND COMPUTER, THE        USER INPUT IS UPLOADED FROM THE SECOND COMPUTER TO THE FIRST        COMPUTER, AND ONE OR MORE ELEMENTS IN THE DISPLAY ARE SUBPIXEL        OPTIMIZED FOR DISPLAY THE SCREEN OF THE SECOND COMPUTER        -   SUBPIXEL OPTIMIZATION IS DONE BY FIRST COMPUTER        -   SUBPIXEL OPTIMIZATION IS DONE BY SECOND COMPUTER        -   DOWNLOAD IS BY WIRELESS TRANSMISSION        -   SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT            -   NON-LINEAR COLOR BALANCING IS USED IN THE SUBPIXEL                OPTIMIZATION OF TEXT        -   SUBPIXEL OPTIMIZED ELEMENTS ARE IMAGES        -   SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT AND IMAGES AND A            DIFFERENT ALGORITHM IS USED TO SUBPIXEL OPTIMIZE FONTS AND            IMAGES        -   WITH COLOR CHANGES BEING MADE TO THE ELEMENTS WHICH ARE            DISPLAYED TO INCREASE THE READABILITY OF SUBPIXEL OPTIMIZED            FONTS        -   WITH THE SECOND COMPUTER SYSTEM HAVING A USER INTERFACE            ALLOWING THE USER TO CHANGE THE SCALE AT WHICH ELEMENTS            GENERATED ON THE FIRST COMPUTER SYSTEM ARE DISPLAYED ON THE            SECOND COMPUTER SYSTEM            -   SCALING IS PERFORMED ON FIRST COMPUTER            -   SCALING IS PERFORMED ON SECOND COMPUTER        -   THE PROCESS RUNNING ON THE FIRST COMPUTER SYSTEM IS AN            APPLICATION WHICH DO NOT HAVE PROGRAMMING FOR SUBPIXEL            OPTIMIZATION            -   SUBPIXEL OPTIMIZATION IS PERFORMED BY ROUTINES ON FIRST                COMPUTER WHICH RESPOND TO CALLS MADE BY THE APPLICATION                TO DRAW A SCREEN ELEMENT    -   A PROCESS ON A FIRST COMPUTER RECEIVES DIGITAL CONTENT INCLUDING        TEXT, LAYS IT OUT FOR USE IN DOWNSCALED DISPLAY, DOWNLOADS        DISPLAY LIST, PROCESS ON SECOND COMPUTER DISPLAYS INFORMATION IN        DISPLAY LIST        -   TEXT STRINGS ARE DOWNLOADED BEFORE BITMAP IMAGES REFERRED TO            IN DISPLAY LIST AND THE SECOND COMPUTER STARTS TO DISPLAY            TEXT STRINGS BEFORE RECEIPT OF IMAGES            -   DOWNLOAD IS BY WIRELESS TRANSMISSION        -   DOWNLOAD IS BY WIRELESS TRANSMISSION            -   DISPLAY LIST IS COMPRESSED WITH LOSSLESS COMPRESSION                BEFORE DOWNLOADING        -   PROCESS ON FIRST COMPUTER SCALES DOWN THE DIGITAL CONTENT            -   SCALES DOWN IMAGES BITMAPS            -   SCALES DOWN FONT SIZES            -   PROCESS ON SECOND COMPUTER SCALES DOWN THE DIGITAL                CONTENT        -   PROCESS ON FIRST COMPUTER LAYS OUT DIGITAL CONTENT AT ONE            PIXEL RESOLUTION, THE PROCESS ON THE SECOND COMPUTER DISPLAY            THE CONTENT AT ANOTHER RESOLUTION        -   TEXT AS DISPLAYED WITH SUBPIXEL OPTIMIZED BITMAP        -   IMAGES ARE DISPLAYED WITH SUBPIXEL OPTIMIZED IMAGES        -   PROCESS ON FIRST COMPUTER SCALES TEXT FONT SIZE AS A            FUNCTION OF A DISPLAY SCALE FACTOR, CLIENT DISPLAYS TEXT AT            SCALED FONT SIZES            -   PROCESS ON SECOND COMPUTER RESPONDS TO USER INPUT TO                CHANGE A ZOOM FACTOR, WHICH VARIES THE SIZE OF THE                PORTION OF THE LAYOUT TO BE DISPLAYED, UPLOADS THE                SELECTED ZOOM FACTOR TO PROCESS ON FIRST COMPUTER, WHICH                THEN USES IT TO DETERMINE THE SCALE FACTOR USED TO SCALE                TEXT FONT SIZE                -   A CHANGE IN ZOOM FACTOR CAUSES TEXT TO BE DISPLAYED                    AT DIFFERENT FONT SIZE, BUT THE TEXT IS NOT RE-LAID                    OUT                -    CHANGES IN RELATIVE SPACING BETWEEN THE CHARACTERS                    OF A STRING IS USED TO COMPENSATE FOR DIFFERENCES IN                    RELATIVE SIZE OF THE VARIOUS CHARACTERS OF A STRING                    WHEN DISPLAYED AT DIFFERENT FONT SIZES            -   PROCESS ON SECOND COMPUTER RESPONDS TO USER INPUT TO                CHANGE THE LAYOUT RESOLUTION, UPLOADS THE SELECTED SCALE                FACTOR TO PROCESS ON FIRST COMPUTER, WHICH THEN USES IT                TO DETERMINE THE SCALE FACTOR USED TO SCALE TEXT FONT                SIZE        -   FIRST COMPUTER DOWNLOADS MORE DISPLAY LIST LAYOUT            INFORMATION THAN FITS ON DISPLAY OF SECOND COMPUTER AT ONE            TIME            -   USER INTERFACE ON SECOND COMPUTER ALLOWS USER TO MOVE                SCREEN DISPLAY TO A NEW LOCATION WITHIN PREVIOUSLY                DOWNLOADED LAYOUT INFORMATION, IN RESPONSE SECOND                COMPUTER DISPLAYS ELEMENTS OF LAYOUT CORRESPONDING TO                THE NEW LOCATION                -   USER INTERFACE INPUT ASSOCIATED WITH LOCATION ON                    SCREEN OF SECOND COMPUTER ARE SCALED AND/OR                    TRANSLATED AND SENT BACK TO FIRST COMPUTER WHICH                    RESPONDS TO THEM AS IF THEY HAD TAKEN PLACE IN THE                    CORRESPONDING LOCATION IN THE DISPLAY LIST.    -   METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM REPEATEDLY        GENERATE INFORMATION TO BE DISPLAYED ON THE SCREEN OF SECOND        COMPUTER SYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO        SAID SECOND COMPUTER SYSTEM, IN WHICH INFORMATION GENERATED BY        THE FIRST COMPUTER IS DOWNLOADED TO THE SECOND COMPUTER, THE        USER INPUT IS UPLOADED FROM THE SECOND COMPUTER TO THE FIRST        COMPUTER, AND IN WHICH ONE OR MORE ELEMENTS DISPLAYED ON THE        SECOND COMPUTER IN RESPONSE TO INFORMATION DOWNLOADED FROM THE        FIRST COMPUTER ARE GUI CONTROL OBJECTS, THE SECOND COMPUTER HAS        PROGRAMMING THAT RESPONDS TO USER INPUT ASSOCIATED WITH SUCH        CONTROL OBJECT BY APPRORIATELY CHANGING THE CONTROL OBJECTS        APPEARANCE IN THE DISPLAY AND BY STORING STATE INFORMATION        INDICATING THE CHANGE MADE TO THE CONTROL OBJECTS DISPLAY, THE        FIRST COMPUTER INCLUDES PROGRAMMING WHICH TRANSMITS A QUERY TO        THE SECOND COMPUTER FOR THE STATE ASSOCIATED WITH A SET OF ONE        OR MORE OF THE DISPLAYED CONTROL OBJECTS, AND THE SECOND        COMPUTER RESPONDS TO SUCH A QUERY BY TRANSMITTING UP TO THE        FIRST COMPUTER THE STATE ASSOCIATED WITH EACH OF THE QUERIED SET        OF CONTROL OBJECTS        -   COMMUNICATION BETWEEN FIRST AND SECOND COMPUTER IS BY MEANS            OF WIRELESS TRANSMISSION    -   METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM REPEATEDLY        GENERATE INFORMATION TO BE DISPLAYED ON THE SCREEN OF SECOND        COMPUTER SYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO        SAID SECOND COMPUTER SYSTEM, IN WHICH THE USER INTERFACE ON THE        SECOND COMPUTER ALLOWS THE USER TO SELECT TO SCROLL THE POSITION        OF THE SCREEN IMAGE RELATIVE TO THE LAYOUT OF THE INFORMATION TO        BE DISPLAYED, AND WHEN THE DISPLAY AT THE NEW LAYOUT POSITION        WOULD INCLUDE THE DISPLAY OF INFORMATION DOWNLOADED FOR USE IN        THE DISPLAY AT THE PREVIOUS LAYOUT POSITION, THE SECOND COMPUTER        REUSES AT LEAST A PORTION OF SUCH PREVIOUSLY DOWNLOADED IN        FORMATION, AND THE FIRST COMPUTER SELECTS WHICH INFORMATION TO        DOWNLOAD TO THE SECOND COMPUTER FOR USE IN THE DISPLAY AT THE        NEW LAYOUT POSITION SO AS TO NOT TO RE-DOWNLOAD SUCH PREVIOUSLY        DOWNLOADED INFORMATION WHICH IS TO BE SO REUSED.        -   INFORMATION IS RE-USED BY TRANSLATING A PORTION OF THE            BITMAP GENERATED FOR THE DISPLAY AT THE OLD LAYOUT POSITION            FOR USE IN THE DISPLAY AT THE NEW LAYOUT POSITION        -   DOWNLOAD IS PERFORMED BY WIRELESS    -   BROWSER PROCESS ON FIRST COMPUTER RECEIVES WEB PAGE, IT LAYS OUT        WEB PAGE AND CREATES CORRESPONDING DISPLAY LIST INCLUDING LIST        OF STRINGS AND IMAGES AND THEIR LOCATIONS, DOWNLOADS DISPLAY        LIST BY WIRELESS COMMUNICATION TO A THIN CLIENT BROWSER, WHICH        BITMAPS OF IMAGES BEING SENT DOWN AFTER STRINGS AND THEIR        LOCATIONS, THIN CLIENT BROWSER STARTS TO DISPLAY STRINGS AT        LOCATIONS INDICATED IN DISPLAY LIST BEFORE IMAGES ARE ALL        RECEIVED, IMAGES ARE DISPLAYED AT LOCATIONS INDICATED IN DISPLAY        LIST WHEN RECEIVED        -   WIRELESS IS LOCAL AREA NET WIRELESS        -   WIRELESS IS CELLULAR WIRELESS    -   FIRST COMPUTER SCALES DOWN AND LAYS OUT WEB PAGE, COMPRESS        LAYOUT INFORMATION, DOWNLOADS IT VIA WIRELESS CONNECTION TO A        SECOND COMPUTER, SECOND COMPUTER DECOMPRESSES LAYOUT        INFORMATION, AND DISPLAYS IT ON ITS SCREEN, SECOND COMPUTER        RECEIVES USER INPUTS RELATIVE TO LOCATION ON ITS DISPLAY OF WEB        PAGE, SENDS USER INPUTS TO FIRST COMPUTER, USER INPUTS ARE        SCALED TO CORRESPONDING LOCATION IN LAYOUT OF WEB PAGE STORED ON        FIRST COMPUTER, FIRST COMPUTER DETECTS IF SCALED USER INPUT        CORRESPONDS TO CLICKING ON A LINK IN WEB PAGE, IF SO IT RESPONDS        BY ACCESSING LINKED WEB PAGE        -   COMPRESSION INCLUDES LOSSLESS COMPRESSION OF TEXT        -   COMPRESSION INCLUDES LOSSLESS COMPRESSION OF IMAGES        -   DOWNLOADED AND DISPLAYED IMAGE ARE SUBPIXEL OPTIMIZED IMAGE            BITMAPS        -   TEXTS IS DISPLAYED BY SECOND COMPUTER BY SUBPIXEL OPTIMIZED            FONT BITMAPS    -   DOWNLOAD AND DISPLAY FIRST GREEKED REP. OF WEB TEXT FOLLOWED BY        REP. OF ITS CHARACTERS        -   A method of web browsing comprising:        -   downloading a greeked representation of a web page in which            each of one or more a portion of text is represented as a            string length starting at each of one or more locations in a            layout of said page;        -   displaying at least a portion of said web page in which said            one or more string lengths are represented at their            associated layout positions by greeking;        -   subsequently downloading the string characters associated            with one or more of said portions of text; and        -   subsequently displaying the character string associated with            one or more of said portion of texts.        -   ALLOW USER TO SELECT A PORTION OF THE GREEKED TEXT AND            DOWNLOADING AND DISPLAYING SELECTED PORTION            -   A method as in the parent innovation:            -   further including allowing a user to select one or more                of said portions of text represented by said greeking;                and            -   wherein said subsequent downloading and subsequent                displaying includes downloading and displaying the                string of characters associated with one or more of said                selected portions of text.            -   DISPLAY PORTION OF WEB PAGE CORRESPONDING TO SELECTED                PORTIONS OF GREEKED TEXT AT A LARGER SCALE THAN SAID                GREEKED TEXT                -   A method as in the parent innovation wherein said                    subsequent displaying includes displaying a part of                    said web page including the character strings of                    said selected portions of text at a larger scale                    than the same portion of the web page shown with                    said greeked representations was shown.            -   DISPLAY SELECTED PORTION OF TEXT WITH LARGER CHARACTERS                AND TEXT REFLOWN ACROSS LINE BOUNDARIES                -   A method as in the parent innovation wherein said                    subsequent displaying includes displaying one or                    more characters strings of said selected portions of                    text using character shapes having a larger size                    than is represented by said greeked representation                    and after said text has been reflown across line                    boundaries to determine new ling breaks occasioned                    by said larger character shape sizes.        -   DOWNLOADED GREEKED REP. REPRESENTS A MULTI-LINE BODY OF TEXT            AS A SERIES OF SINGLE LINE STRING LENGTHS, EACH REPRESENTING            THE LENGTH OF ONE LINE OF TEXT AND EACH WITH AN ASSOCIATED            POSITION            -   A method as in the parent innovation wherein said                greeked representation represents a body of multi-lined                text in said web page as a series of said string                lengths, each representing the length of one line of                text and each having an associated layout position in                said web page.            -   DOWNLOADING A SEPARATE CHARACTER STRING IN ASSOCIATION                WITH INDIVIDUAL SINGLE LINE STRING LENGTHS, AND                SUCCESSIVELY REPLACING IN SAID DISPLAY THE GREEKING                ASSOCIATED WITH INDIVIDUAL SINGLE LINE STRING WITH THE                SHAPES OF THE CHARACTER OF THEIR ASSOCIATED CHARACTERS                STRING AS THOSE INDIVIDUAL CHARACTERS STRINGS ARE                DOWNLOADED                -   A method as in the parent innovation wherein:                -   said subsequent downloading of character string                    includes downloading a separate character string in                    association with individual single line string                    lengths; and                -   said subsequent displaying of character strings                    includes successively replacing in said display the                    greeking associated with individual single line                    string with the shapes of the character of their                    associated characters string as those individual                    characters strings are downloaded.            -   DOWNLOAD FROM TOP OF PAGE FIRST                -   ACROSS SIDE BY SIDE TEXT BLOCKS        -   ORDER IN WHICH CHARACTERS OF DIFFERENT PORTIONS OF TEXT ARE            DOWNLOADED AND DISPLAYED VARIES AS A FUNCTION OF PROPERTIES            ASSOCIATED WITH TEXT PORTIONS BY WEB PAGE            -   A method as in the parent innovation wherein the order                in which different portions of text have their                individual characters downloaded and displayed varies as                a function of the different properties which said                different text portions have associated with them by                said web page.            -   DIFFERENT PROPERTY INCLUDES DIFFERENT FONT SIZE                -   A method as in the parent innovation wherein font                    size is one of said properties used to control the                    order in which different portions of said text have                    their characters downloaded and displayed.        -   GREEKING INCLUDES INDICATION OF HEIGHT OF CHARACTERS IN            STRING AS WELL AS LENGTH OF STRING            -   A method as in the parent innovation wherein:            -   different of said string lengths have height values                associated with them, which indicate the height of the                characters in the text portion that the string length                represents; and            -   said displaying of said web page in which said string                lengths are represented by greeking includes causing the                height of the greeking used to represent a given string                length to vary as a function of the string length's                corresponding height value.        -   IMAGES CAN BE SHOWN IN ABBREVIATED FORM FIRST            -   SHOW OUTLINE OF PICTURE RECTANGLE            -   LOW RES IMAGE OR CHARACTURE-LOW RES FIRST        -   USER CAN SPECIFY DOWNLOAD ORDER        -   DOWNLOAD FROM PROXY        -   USER INTERACTION WITH TO INDICATE WHICH TO SEE    -   LAYOUT PAGE, THEN DOWNLOAD REP. OF TEXT ELEMENTS IN AN ORDER        DETERMINED AS OF FUNCTION OF THEIR POSITION IN THE LAYOUT        -   A method of downloading and displaying a web page which            contains different portions of text having different            properties associated with them by said web page, said            method comprising:        -   laying out the web page before downloading it to a browser            computer;        -   downloading representations of individual portions of text            with an indication of the layout location of each such            portion;        -   displaying representation of said downloaded individual            portions of text as a function of the order in which they            are downloaded;        -   wherein the order in which different portions of text are            downloaded and displayed is controlled as a function of the            location to which said portions have been assigned within            said layout.        -   ORDERED AS A FUNCTION OF CLOSENESS TO TOP OF PAGE            -   A method as in the parent innovation wherein the order                in which different portions of text are download and                displayed is controlled as a function of the relative                closeness of said text portions to the top of said                layout, with text portions which are closer to the top                of said layout being downloaded before text portions                which are closer to the bottom of said layout.        -   DOWNLOADED REPRESENTATIONS OF TEXT PORTIONS INCLUDE STRING            LENGTHS AND THEY ARE REPRESENTED IN DISPLAY BY GREEKING            -   A method as in the parent innovation wherein:            -   said downloaded representations of individual text                portions include for each downloaded text portion a                string length and said indication of layout position;                and            -   said displaying a representation of the downloaded text                portions includes representing said downloaded string                lengths at their associated layout positions by                greeking.        -   DOWNLOADED REPRESENTATIONS OF TEXT PORTIONS INCLUDE            CHARACTER STRINGS AND THEY ARE REPRESENTED IN DISPLAY WITH            THEIR CHARACTER'S SHAPES SHOWN            -   A method as in the parent innovation wherein:            -   said downloaded representations of individual text                portions includes for each downloaded text portion a                string of one or more characters corresponding to the                text of said text portion and said indication of layout                position; and            -   said displaying a representation of the downloaded text                portions includes representing said downloaded character                strings at their associated layout positions by the                shapes of their respective characters.        -   BROWSER ALLOWS USER TO SELECT PORTION OF WEB PAGE FOR            PREFERENTIAL DISPLAY DURING SAID ORDERED DOWNLOAD AND            DISPLAY, BROWSER RESPONDS TO SELECTION OF A PORTION OF WEB            PAGE BY COMMUNICATING PREFERENTIAL SELECTION REMOTE            COMPUTER, WHICH ALTERING THE DOWNLOAD OF PAGE            -   A method as in the parent innovation wherein:            -   said downloaded information is received and displayed by                a browser computer;            -   said layout is performed, and said downloaded                information is downloaded from one or more remote                computers;            -   said browser computer allows a user to select a portion                of said web page for preferential display while said                page is being displayed;            -   said browser computer responds to a user's selection of                a portion of said web page for preferential display by                communicating said selection to one of said remote                computers;            -   said remote computer responds to said communication of                said selection of a portion of said web page by altering                the download of said web page to support said selected                preferential display.            -   PREFERENTIAL SELECTION INDICATES PORTION OF PAGE TO BE                DOWNLOADED FIRST                -   A method as in the parent innovation wherein:                -   said selection indicates that said selected portion                    of said web page is to be downloaded and displayed                    before other portions of said web page; and                -   said remote computer alters the download of said web                    page to support said selected preferential display                    by causing the selected portion of the web page to                    be downloaded before other, non-selected portions,                    of the web-page.            -   PREFERENTIAL SELECTION INDICATES PORTION OF PAGE TO BE                DISPLAYED AT A LARGER SIZE                -   A method as in the parent innovation wherein:                -   said selection indicates that said selected portion                    of said web page is to be displayed at a larger size                    than that at which the page was being displayed                    before said selection;                -   said remote computer alters the download of said web                    page to support said selected preferential display                    by causing the selected portion of the web page to                    be downloaded before other, non-selected portions,                    of the web-page; and                -   said browser displays elements of said selected                    portion of said web page at said larger size.            -   PREFERENTIAL SELECTION CAN INCLUDE AREA OF THE WEB                PAGE'S LAYOUT WHICH HAVE NOT YET BEEN DISPLAYED ON THE                BROWSER AT THE TIME THE SELECTION IS MADE.                -   A method as in the parent innovation wherein:                -   said browser computer has a screen on which said                    display is made;                -   said selection can include portions of said screen                    which correspond to portions of the web page which                    have not yet been displayed at the time of the                    selection;                -   said communication to said remote computer indicates                    that the selection includes the portion of the web                    page corresponding to the selected portion of said                    screen.        -   DOWNLOAD IMAGES LOCATION WITH TEXT DESCRIPTIONS AND USER CAN            SELECT WHICH TO HAVE DOWNLOADED FIRST        -   DOWNLOAD MAJOR DIVISIONS OF PAGE, LET USER SELECT WHICH TO            HAVE DOWNLOADED FIRST            -   USE CAN SELECT ZOOM            -   INDICATING LAYERS, TABLE ELEMENTS, SUCH AS BY OUTLINES                AND LETTER USERS        -   PAGE IS LAID OUT BEFORE BEING DOWNLOADED, ORDER IN WHICH            DIFFERENT PORTIONS OF TEXT ARE DOWNLOADED AND DISPLAYED            VARIES AS A FUNCTION OF PROPERTIES ASSOCIATED WITH TEXT            PORTIONS BY WEB PAGE            -   A method of downloading and displaying a web page which                contains different portions of text having different                properties associated with them by said web page, said                method comprising:            -   laying out the web page before downloading it to a                browser computer;            -   downloading individual portions of the web page's text,                including one or more characters, with an indication of                the layout location of each such portion;            -   displaying said individual portions of text as a                function of the order in which they are downloaded;            -   wherein the order in which different portions of text                are downloaded and displayed is controlled as a function                of the different properties which said different text                portions have associated with them by said web page.            -   DIFFERENT PROPERTY INCLUDES DIFFERENT FONT SIZE                -   A method as in the parent innovation wherein font                    size is one of said properties used to control the                    order in which different portions of said text have                    their characters downloaded and displayed.            -   DOWN'T HAVE TO SEND IMAGES BECAUSE KNOW POSITION OF TEXT                -   COULD SEND SMALL ONES FIRST, LARGE ONES LAST            -   COULD SEND BANNER ADDS LAST                H-Group Innovations    -   APPLICATION CALLS OPERATING SYSTEM TO DISPLAY IMAGE, OPERATING        SYSTEM CALLS CAUSE IMAGES RECEIVED FROM APPLICATION TO BE        SCALED-DOWN BY A SCALE FACTOR, SUBPIXEL OPTIMIZED, AND DISPLAYED        -   AN OPERATING SYSTEM FUNCTION SCALES DOWN AND SUBPIXEL            OPTIMIZES IMAGE        -   HOOKS INTERCEPT OPERATING SYSTEM CALLS AND FUNCTION EVOKED            BY HOOK IN RESPONSE TO CALL SCALES DOWN AND SUBPIXEL            OPTIMIZES IMAGE INSTEAD OF THE CORRESPONDING OPERATING            SYSTEM FUNCTION        -   IMAGES INCLUDE BITMAPS FROM THE APPLICATION'S GUI        -   APPLICATION IS A BROWSERS        -   APPLICATION IS NOT A BROWSER    -   CALLING A BITMAP DRAW ROUTINE TO DRAWS A BITMAP AND CALLING A        SEPARATE STRING DRAW ROUTINE TO DRAW A STRING WITH A PARTICULAR        FONT, WHERE THE BITMAP WITH WHICH THE BITMAP DRAW ROUTINE IS        CALLED IS A SUBPIXEL OPTIMIZED BITMAP AND FONT WITH WHICH THE        STRING DRAW ROUTINE IS CALLED IS A SUBPIXEL OPTIMIZED ROUTINE.        -   THESE CALLS ARE MADE BY AN APPLICATION PROGRAM OTHER THAN            THE OPERATING SYSTEM            -   THESE CALLS ARE MADE BY A BROWSER PROGRAM        -   THESE CALLS ARE MADE BY A THIN CLIENT PROGRAM            -   THE SUBPIXEL OPTIMIZED IMAGE IS A SCALED SUBPIXEL                OPTIMIZED IMAGE CREATED BY A SECOND COMPUTER, DIFFERENT                FROM THAT ON WHICH THE THIN CLIENT IS LOCATED, AND THAT                SCALED, SUBPIXEL OPTIMIZED IMAGE HAS BEEN DOWNLOADED                FROM THE SECOND COMPUTER TO THE BROWSERS COMPUTER        -   IMAGES INCLUDE BITMAPS FROM THE APPLICATION'S GUI        -   APPLICATION IS A BROWSERS        -   APPLICATION IS NOT A BROWSER    -   APPLICATION CALLS OPERATING SYSTEM TO GET FONT MEASUREMENTS FOR        A CERTAIN STRING IN A CERTAIN FONT, RESPECTIVE OPERATING SYSTEM        CALLS CAUSE FONT METRICS FOR A SUBSTITUTE FONT TO BE GIVEN TO        APPLICATION, USES FONT MEASUREMENTS TO LAYOUT TEXT, SUBSTITUTE        FONT USED TO DISPLAY LAID OUT TEXT        -   APPLICATION CALLS OPERATING SYSTEM TO DISPLAY IMAGE,            OPERATING SYSTEM CALLS CAUSE IMAGES RECEIVED FROM            APPLICATION TO BE SCALED-DOWN BY A SCALE FACTOR, AND            DISPLAYED            -   OPERATING SYSTEM CALL IS INTERCEPTED TO ALLOW SCALED                SCREEN GENERATOR FUNCTION TO WORK            -   PROCESS OF SCALING DOWN AN IMAGE ALSO SUBPIXEL OPTIMIZES                IT            -   APPLICATION AND OPERATING SYSTEM ARE ON A FIRST                COMPUTER, APPLICATION LAYS OUT ONE OR MORE IMAGES AND                LAYS OUT THE TEXT AS ONE OR MORE SINGLE LINE STRINGS AND                ASSIGNS A RELATIVE LOCATION WITHIN THE LAYOUT TO EACH                STRING AND EACH IMAGE, THE STRINGS, IMAGES, AND THEIR                LOCATIONS ARE DOWNLOADED TO A SECOND COMPUTER, THE                SECOND COMPUTER DISPLAYS THE SCALED DOWN IMAGES AND                DISPLAYS TEXT USING SUBSTITUTED FONT ALL AT POSITIONS ON                THE SECOND COMPUTER'S SCREEN CORRESPONDING THE                RESPECTIVE DOWNLOADED LOCATIONS                -   LAYOUT IS PERFORMED BY THE APPLICATION AT A FIRST                    RESOLUTION, ALL OR A PORTION OF DISPLAY OF LAID OUT                    ELEMENTS ON THE CLIENT COMPUTERSECOND        -   SUBSTITUTED FONTS ARE SUBPIXEL OPTIMIZED FONTS        -   AN OPERATING SYSTEM FUNCTION MAKES FONT SUBSTITUTION        -   A HOOK INTERCEPT SUCH AN OPERATING SYSTEM CALL AND A            FUNCTION EVOKED BY THE HOOK IN RESPONSE TO THE CALL MAKES            THE FONT SUBSTITUTION INSTEAD OF THE OPERATING SYSTEM            FUNCTION WHOSE CALL WAS INTERCEPTED        -   USE OF SUBPIXEL OPTIMIZED FONTS IN OS OF COMPUTER        -   APPLICATION IS A BROWSERS        -   APPLICATION IS NOT A BROWSER    -   USE OF METRICS FOR SUBPIXEL OPTIMIZED FONTS IN FIRST COMPUTER TO        LAYOUT DIGITAL CONTENT, DOWNLOAD LAYOUT INFORMATION, DISPLAY        LAID OUT FONTS WITH SUBPIXEL OPTIMIZED FONTS        -   DIGITAL CONTENT ARE WEB PAGES        -   DIGITAL CONTENT ARE WINDOWS DRAWN BY APPLICATIONS INCLUDING            GUI ELEMENTS            I-Group Innovations    -   A SERVER SYSTEM RECEIVES REQUESTS FOR FONTS OVER A COMPUTER        NETWORK AND RESPONDING TO SUCH REQUESTS BY SENDING THE REQUESTED        FONTS IN A SUBPIXEL OPTIMIZED FORM SBACK OVER THE COMPUTER        NETWORK        -   FONTS SENT IN RESPONSE ARE SUBPIXEL OPTIMIZED BITMAPS        -   FONTS SENT IN RESPONSE ARE OUTLINE FONTS WHICH HAVE BEEN            HINTED FOR DISPLAY AS SUBPIXEL RESOLUTION        -   REQUESTS ARE FOR SUBSETS OF THE CHARACTERS OF A GIVEN FONT            -   REQUESTS ARE FOR A SUBSET OF THE ROMAN FONT        -   REQUEST IS AN HTTP REQUEST            -   HTTP REQUEST CONTAINS A URL CONTAINING A PATH                SPECIFICATION IDENTIFYING A SET OF ONE OR MORE FONT                OUTLINES OR FONT BITMAPS        -   REQUEST INDICATES IF SUBPIXEL OPTIMIZED OR NON-SUBPIXEL            OPTIMIZED FONT ARE TO BE SENT IN RESPONSE TO REQUEST, AND            THE FONTS DOWNLOADED EITHER ARE OR ARE NOT SUBPIXEL            OPTIMIZED, RESPECTIVELY, IH RESPONSE TO SUCH AN INDICATION        -   SERVER RESPONDED TO REQUEST BY DYNAMICALLY CREATES SUBPIXEL            OPTIMIZED FONT BITMAPS FOR ITS REQUESTED CHARACTER AND FONT            FROM A FONT OUTLINE            -   SERVER CACHES FONT BITMAP SO CREATED AND IF BITMAP IS IN                CACHE NEXT TIME A REQUEST FOR IT IS RECEIVED, IT SERVES                THE CACHED BITMAP RATHER THAN CREATING THE BITMAP ANEW                FROM ITS CORRESPONDING FONT OUTLINE        -   SERVER STORES FONT BITMAPS AND SERVES SUCH STORED BITMAPS IN            RESPONSE TO REQUESTS    -   INTERNET SERVER RECEIVES HTTP REQUESTS FOR CHARACTER-FONT SHAPES        IN MEDIA WHICH IT DID NOT SERVE AND DOWNLOADS REQUESTED        CHARACTER-FONT SHAPES TO REQUESTING MACHINE IN RESPONSE    -   WEB SERVER SERVES FONTS OVER INTERNET IN RESPONSE TO HTTP        REQUESTS FOR SUBSETS OF INDIVIDUAL CHARACTERS AND CHARGES        ACCOUNT FOR DOWNLOADS        -   WEB SERVER HAS AUTOMATIC SOFTWARE ALLOWING PARTIES TO PLACE            FONTS FOR SALE ON NETWORK            -   SITE HAS SOFTWARE WHICH AUTOMATICALLY CHECK HOW CLOSE A                FONT BEING OFFERED IS TO OTHER FONT AND PROVIDES WARNING                IF TOO CLOSE        -   CHARGES AS A FUNCTION OF NUMBER OF DOWNLOADS        -   REQUEST IDENTIFIES SOURCE OF MEDIA CONTAINING TAGS            IDENTIFYING REQUESTED FONTS AND CHARGE IS TO SOURCE OF THAT            MEDIA        -   REQUEST IDENTIFIES PARTY RECEIVING REQUESTED FONT AND CHARGE            IS TO THAT PARTY    -   SERVING WEB PAGES WITH URLS POINTING TO A REMOTE INTERNET SITE        DEFINING WHERE A BROWSER PROGRAM RECEIVING SUCH SERVED WEB PAGES        CAN AUTOMATICALLY OBTAIN ONE OR MORE CHARACTER-FONT SHAPES FOR        USE IN DISPLAY OF THE PAGE    -   A COMPUTER RECEIVES DIGITAL CONTENT, IT SENDS AN HTTP REQUEST        OVER A COMPUTER NETWORK FOR BITMAPS OF CHARACTER FONT SHAPES IT        NEEDS TO RENDERED THE PAGE WHICH IT DOES NOT HAVE, WHEN IT        RECEIVES THE REQUESTED FONT BITMAPS IT USES THEM TO RENDER THE        PAGE AND CACHES THEM, WHEN THE WEB BROWSER RECEIVES ANOTHER PAGE        IT CHECKS ITS CACHE TO SEE IF IT HAS ALL THE CHARACTERS FONT        BITMAPS NEEDED TO RENDER THE PAGE AND SENDS AN HTTP REQUEST OVER        A COMPUTER NETWORK FOR THE CHARACTER FONT BITMAPS IT NEEDS TO        RENDER THE PAGE        -   REQUESTS SUBSETS OF A FONTS CHARACTERS            -   SOME SUCH SUBSETS ARE LESS THAN ALL CHARACTERS IN ROMAN                ALPHABET            -   ALL SUBSETS ARE INDIVIDUAL CHARACTERS        -   FONT BITMAPS ARE SUBPIXEL OPTIMIZED BITMAPS        -   SELLING SOFTWARE WHICH DOES THIS        -   DISTRIBUTING SOFTWARE WHICH RESPONDS TO REQUEST FOR FONT            WHICH IT DOES NOT HAVE BY SEEKING IT FROM A GLOBAL INTERNET            URL        -   PROGRAMMING USES HTTP REQUESTS TO REQUEST FONTS FROM            DIFFERENT PARTIES            -   HTTP REQUEST CONTAINS A URL CONTAINING A PATH                SPECIFICATION IDENTIFYING A SET OF ONE OR MORE FONT                OUTLINES OR FONT BITMAPS        -   PROGRAMMING CACHES FONTS OF ONE OR MORE CHARACTERS WHICH            HAVE BEEN PREVIOUSLY REQUESTED AND RECEIVED AND DETERMINES            WHETHER TO REQUEST A GIVEN COMBINATION OF ONE OR MORE            CHARACTERS FROM THE SERVER AS A FUNCTION OF WHETHER THOSE            ONE OR MORE CHARACTERS ARE CURRENTLY CACHED        -   PROGRAMMING IS SOLD AS PART OF A WEB BROWSER            -   PROGRAMMING IS SOLD AS PART OF A THIN CLIENT WEB BROWSER    -   A WEB BROWSER RECEIVES A WEB PAGE, IT SENDS A REQUEST OVER THE        INTERNET FOR THE INDIVIDUAL CHARACTER FONT SHAPES IT NEEDS TO        RENDERED THE PAGE WHICH IT DOES NOT HAVE, WHEN IT RECEIVES THE        REQUESTED FONTS IT USES THEM TO RENDER THE PAGE AND CACHES THEM,        WHEN THE WEB BROWSER RECEIVES ANOTHER PAGE IT CHECKS ITS CACHE        TO SEE IF IT HAS ALL THE CHARACTERS NEEDED TO RENDER THE PAGE        AND SENDS A REQUEST OVER THE INTERNET FOR THE INDIVIDUAL        CHARACTER FONT SHAPES ITS NEEDS TO RENDER THE PAGE        -   FONTS ARE SUBPIXEL OPTIMIZED FONTS        -   REQUEST FOR FONTS IS AN HTTP REQUEST            -   HTTP REQUEST INCLUDES A URL SPECIFYING A PATH NAME WHICH                UNIQUELY IDENTIFIES AN INDIVIDUAL CHARACTER OF AN                INDIVIDUAL FONT    -   SENDING AND/OR RECEIVING AN HTTP REQUEST FOR ONE OR MORE FONT        BITMAP WITH A URL CONTAINING A PATH SPECIFICATION IDENTIFYING A        SET OF ONE OR MORE FONT OUTLINES OR FONT BITMAPS        J-Group Innovations    -   DISPLAYING TEXT IN AN EDIT FIELDS USING SUB-PIXEL OPTIMIZED        FONTS    -   DISPLAYING GUI ELEMENTS WITH SUB-PIXEL OPTIMIZED FONTS, SUCH AS        LABELS ON BUTTONS, CHECK BOXES, RADIO BUTTONS, MENU ITEMS, AND        POP-UP KEYBOARDS    -   RESPONDING TO A CALL FOR A FUNCTION TO DRAW A BASIC GEOMETRIC        SHAPE ON A SCREEN, BY RENDERING A SUBPIXEL OPTIMIZED VERSION OF        THAT BASIC SHAPE        -   GEOMETRIC FIGURE IS A STRAIGHT LINE, A CURVED LINE, AN            ELIPSE, OR AA RECTANGLE        -   CALL MATHEMATICALLY DEFINES A SHAPE WHICH PARTIALLY COVERS            ONE OR MORE PIXELS ON THE SCREEN, SCREEN IS A SUBPIXEL            ADDRESSABLE SCREEN, AND SUBPIXEL OPTIMIZATION IS USED TO            RENDER THE COVERAGE OF SUCH PARTIALLY COVERED PIXELS WITH            THE HIGHER PERCEPTABLE SPATIAL RESOLUTION MADE POSSIBLE BY            ASSIGNING DIFFERENT LUMINOSITY VALUES TO DIFFERENT SUBPIXELS            OF INDIVIDUAL PARTIALLY COVERED PIXELS AS A FUNCTION OF THE            COVERAGE BY THE SHAPE OF THE PORTION OF SUCH PIXELS            CORRESPONDING TO INDIVIDUAL SUBPIXELS, SO AS TO VISUALLY            INDICATE THE SHAPES INTERMEDIARY COVERAGE OF SUCH PIXELS            -   WHERE SHAPE IS TO BE A MONOCHROMATIC SHAPE, USING COLOR                BALANCING TO REMOVE COLOR IMBALANCES INTRODUCED IN TO                THE INTENDED MONOCHROMATIC COLOR OF THE SHAPE BY                ASSIGNING LUMINOSITY VALUES TO SUBPIXELS BASED ON THEIR                COVERAGE BY THE SHAPE                -   USING NON-LINEAR COLOR BALANCING        -   A SPECIFIC FOREGROUND COLOR HAS BEEN SPECIFIED FOR THE            SHAPE, FOREGROUND COLOR IS SHIFTED TOWARD AN MORE GREYSCALE            VALUE TO IMPROVE THE SPATIAL VISUAL SPATIAL RESOLUTION            PRODUCED BYH SUCH FOR THE        -   THE CALLED FUNCTION AND THE SUBPIXEL OPTIMIZATION ARE PART            OF AN OPERATING SYSTEM        -   THE CALLED FUNCTION IS PART OF AN OPERATING SYSTEM, BUT THE            SUBPIXEL OPTIMIZATION IS NOT    -   RESPONDING TO A CALL FOR A FUNCTION TO DRAW A BITMAP OF A GUI        ELEMENT BY RENDERING A SUBPIXEL OPTIMIZED VERSION OF THAT BITMAP        -   CALL IS SPECIFICALLY FORE THE CREATION OF A GUI ELEMENTS        -   CALL IS FOR A BITMAP DRAW AND BITMAP TO BE DRAWN IS A GUI            ELEMENT        -   BITMAP HAS ALREADY BEEN SUBPIXEL OPTIMIZED BY TIME OF THE            CALL        -   BITMAP HAS NOT BEEN SUBPIXEL OPTIMIZED BY THE TIME OF THE            CALL AND IT'S ASSOCIATED BITMAP IS BOTH SCALED DOWN AND            SUBPIXEL OPTIMIZED IN RESPONSE TO THE CALL            -   BICOLOR SUBPIXEL OPTIMIZATION IS USED ON BITMAP            -   MULTICOLOR SUPIXEL OPTIMIZATION IS USED ON BITMAP            -   SUBPIXEL OPTIMIZED FONT BITMAPS ARE SUPERIMPOSED ON                IMAGE OF GUI ELEMENTS    -   A METHOD OF DISPLAYING AN ORIGINAL IMAGE WITH A CORRESPONDING        ROLL-OVER IMAGES, IN WHICH BOTH THE ORIGINAL IMAGES AND THE        ROLL-OVER IMAGES ARE SUBPIXEL OPTIMIZED IMAGES    -   SUBPIXEL OPTIMIZED ANIMATIONS IN WHICH THE MULTIPLE IMAGES OF        THE ANIMATION ARE EACH SUBPIXEL OPTIMIZED    -   DISPLAYING DVD VIDEO OUTPUT HAVING A GIVEN RESOLUTION ON A        SUBPIXEL ADDRESSABLE DISPLAY ARRAY OF WHOLE PIXELS HAVING A        LOWER RESOLUTION IN AT LEAST ONE DIMENSION THAN THE GIVEN        RESOLUTION OF THE DVD OUTPUT AND USING SUBPIXEL OPTIMIZATION TO        DISPLAY THE DVD VIDEO OUTPUT AT HIGHER PERCEPTABLE SPATIAL        RESOLUTION THAN THE DISPLAY ARRAY'S WHOLE PIXEL RESOLUTION        -   USER CAN CHANGE DISPLAY ARRAY'S RESOLUTION    -   DISPLAYING HDTV VIDEO OUTPUT HAVING A GIVEN RESOLUTION ON A        SUBPIXEL ADDRESSABLE DISPLAY ARRAY OF WHOLE PIXELS HAVING A        LOWER RESOLUTION IN AT LEAST ONE DIMENSION THAN THE GIVEN        RESOLUTION OF THE HDTV OUTPUT AND USING SUBPIXEL OPTIMIZATION TO        DISPLAY THE DVD VIDEO OUTPUT AT HIGHER PERCEPTABLE SPATIAL        RESOLUTION THAN THE DISPLAY ARRAY'S WHOLE PIXEL RESOLUTION        -   USER CAN CHANGE DISPLAY ARRAY'S RESOLUTION    -   DISPLAYING MULTIMEDIA OUTPUT WHICH CAN REPRESENT IMAGES,        INCLUDING MOVING IMAGES, AND BICOLOR SHAPES, SUCH AS TEXT,        INCLUDING MOVING BICOLOR SHAPES, AND USING SUBPIXEL OPTIMIZATION        ON BOTH SAID IMAGES AND SHAPES    -   DOWNLOADING WEB APPLETS OVER A COMPUTER NETWORK, WHICH APPLETS        DISPLAY SUBPIXEL OPTIMIZED BITMAPS ON A CLIENT COMPUTER        -   BY COPYING A SUBPIXEL OPTIMIZED BITMAP DOWNLOADED AS PART OF            APPLET ONTO CLIENT SCREEN        -   BY GENERATING A NEW SUBPIXEL OPTIMIZED BITMAP ONTO CLIENT            SCREEN    -   DOWNLOADING SUB-PIXEL OPTIMIZED VIDEO AND DISPLAYING IT ON        SCREEN OF A CLIENT COMPUTER        -   VIDEO IS REQUESTED BY A VIEWER COMPUTER, REQUESTED VIDEO IS            DOWNLOADED FROM A FIRST COMPUTER TO A PROXY COMPUTER, THEN            VIDEO IS SUBPIXEL OPTIMIZED BY THE PROXY COMPUTER, AND            DOWNLOADED TO AND DISPLAYED ON THE VIEWER COMPUTER        -   VIDEO IS COMPRESSED AFTER IT HAS BEEN SUBPIXEL OPTIMIZED, IS            DOWNLOADED IN COMPRESSED FORM, IS UNCOMPRESSED, AND THEN            DISPLAYED            -   FRAME TO FRAME COMPRESSION IS USED IN COMPRESSION OF                SUB-PIXEL OPTIMIZED VIDEO        -   VIDEO IS SCALED DOWN AT SAME TIME IS ITS SUBPIXEL OPTIMIZED    -   SUB-PIXEL OPTIMIZED GRAPHIC ELEMENTS FOR ANIMATION        -   GRAPHIC ELEMENTS HAVE BEEN DOWNSCALED FROM A SOURCE IMAGE            AND SUBPIXEL OPTIMIZED BEFORE THE PROGRAM SESSION OF PROGRAM            THAT IS DRAWING THEM        -   GRAPHIC ELEMENT ARE DOWNSCALED FROM A SOURCE IMAGE AND            SUBPIXEL OPTIMIZED DURING THE PROGRAM SESSION THAT IS            DRAWING THEM            -   MOVING GRAPHIC ELEMENT ON A SUBPIXEL ADDRESSABLE SCREEN                IN A MANNER WHICH SHIFTS THE IMAGES POSITION RELATIVE TO                THE PIXEL PATTERN WHICH REPRESENT IT AT DIFFERENT                POSITIONS TO REFLECT THE POSITION OF THE IMAGE RELATIVE                THE PIXELS THAT REPRESENT IT AT A HIGHER SPATIAL                RESOLUTION THAN THE RESOLUTION OF WHOLE PIXELS IN THE                DISPLAY        -   MOVING GRAPHIC ELEMENT IN UNITS OF HOLE PIXELS IN RESPONSE            TO ANIMATED MOVEMENT CALCULATED IN FINER INCREMENTS THAN            WHOLE PIXELS    -   MOVING POSITION OF AN IMAGE BEING DISPLAYED ON A SUBPIXEL        ADDRESSABLE DISPLAY IN INCREMENTS OF MOTION FINER THAN WHOLE        PIXELS, AND DISPLAYING IMAGE WITH DIFFERENT SUBPIXEL OPTIMIZED        BITMAPS AT DIFFERENT POSITIONS IN SUCH MOVEMENT TO REFLECT THE        DIFFERENT COVERAGE OF AS DIFFERENT POSITIONS        -   IMAGE IS OF A BITMAP        -   IMAGE IS OF A CHARACTER SHAPE        -   IMAGE IS OF VECTOR DRAWING NON-CHARACTER SHAPE    -   DISPLAYING ELECTRONIC INK USING SUBPIXEL OPTIMIZED BITMAPS        K-Group Innovations    -   DISPLAYING DIGITAL CONTENT BY ACCESSING IT, LAYING IT OUT AT A        VIRTUAL PIXEL RESOLUTION USING LAYOUT SIZES FOR IMAGE AND FONTS        AND DISPLAYING A PORTION OF LAYOUT AT A SMALLER DISPLAY        RESOLUTION BY DISPLAYING SAID IMAGES AND TEXT AT COORDINATES AND        SIZES SCALED DOWN BY A SCALE FACTOR, WITH THE DISPLAY OF TEXT        BEING COMPOSED FROM FONT BITMAPS HAVING CHARACTER SHAPES AND        PIXEL ALIGNMENTS SELECTED TO IMPROVE READABILITY AT SAID SCALED        DOWN SIZE        -   1. A method of displaying digital content on a screen, said            method comprising:        -   accessing said digital content including images and text            strings;        -   laying out said images and text at a virtual pixel            resolution using layout pixel sizes for said images and            text, so as to assign a horizontal and vertical virtual            position in said layout to each of said images and each            portion of a string of text displayed on a given line; and        -   drawing at least a portion of said layout on said screen;        -   wherein:        -   the displayed portion of the layout has a displayed pixel            resolution that is scaled down by a scale factor relative to            the pixel resolution of said portion in the layout performed            at said virtual pixel resolution;        -   images and text in said displayed portion of the layout are            shown at pixel coordinates that corresponding to the            positions of said images and text in the layout, as scaled            down by said scale factor;        -   the images and text are drawn in said display at scaled-down            pixel sizes that correspond to the pixel sizes used for said            images and text in the layout, as scaled down by said scale            factor;        -   the image of a string of text in said display is composed            from a succession of font bitmaps having pixel sizes that            are scaled down by said scale factor relative to the size            allocated to the characters of said string in said layout;            and        -   the shape and pixel alignment of a given character            represented in said display by one of said font bitmaps have            been selected as a function of the given size of said bitmap            to improve the readability of said bitmap at said given            bitmap size.        -   DIGITAL CONTENT IS A WEB PAGE            -   2. A method as in Innovation 1 wherein said digital                content is a web page.            -   THE IMAGE SIZES IN LAYOUT ARE THOSE SPECIFIED IN WEB                PAGE                -   3. A method as in Innovation 2 wherein said layout                    image sizes at which images are laid out in said web                    pages are sizes of said images specified by the                    content of said web page.            -   ALLOWING USER TO SELECT TO HAVE SUCH SCALED-DOWN                DISPLAYS OF GIVEN LAYOUT PERFORMED AT DIFFERENT SCALE                FACTORS, WITH DIFFERENT FONT SIZES USED FOR DISPLAY OF                SIMILAR TEXT AT DIFFERENT SELECTED SCALE FACTORS, AND IN                WHICH THE SHAPE AND PIXEL ALIGNMENT OF CORRESPONDING                CHARACTERS IN FONT BITMAPS OF SUCH DIFFERENT FONT SIZES                ARE DIFFERENT TO IMPROVE READABILITY OF FONT BITMAPS AT                EACH SUCH DIFFERENT FONT SIZE                -   4. A method as in Innovation 2 wherein                -   said method includes allowing a user to select to                    have said scaled-down display of a given layout                    performed at different scale factors;                -   different font sizes are used in said scaled-down                    display for similar text at different selected scale                    factors; and                -   the shape and pixel alignment of corresponding                    characters in the font bitmaps of such different                    font sizes are different to improve readability of                    font bitmaps at each of such different font sizes.            -   SCALED-DOWN TEXT SIZES INCLUDES 8 PIXELS PER EM OR LESS                -   5. A method as in Innovation 2 wherein said                    scaled-down pixel sizes include font sizes of 8                    pixels per em or less.                -   FONT HAS BEEN HINTED FOR SAID SMALLER TEXT SIZE                -    6. A method as in Innovation 5 wherein the                    characters shapes represented by font bitmaps of                    said pixel size of eight pixel per em or less have                    been hinted for improved readability at such size.            -   FONT BITMAPS OF DIF CHARS AT A SMALLER TEXT SIZE HAVE                DIF RELATIVE DIMENSIONS AS FUNCTION OF DIF CHAR SHAPES                AND PIXEL ALIGNMENTS TO IMPROVE READABILITY AT SMALLER                TEXT SIZE; SIZE OF TEXT STRING AT SMALLER TEXT SIZE IS                FUNCTION OF DIMENSIONS OF FONT BITMAP OF EACH CHAR IN                STRING AT SMALLER TEXT SIZE; AND SIZE USED FOR STRING IN                LAYOUT CORRESPONDS TO THE SIZE AT THE SMALLER TEXT SIZE,                SCALED UP BY THE SCALE FACTOR.                -   7. A method as in Innovation 2 wherein:                -   the size of a given text string at the given                    scaled-down text size is a function of the pixel                    dimensions of each character in the string at the                    given scaled-down pixel size, where the pixel                    dimensions of each character is determined in part                    at a function of the dimensions of the pixel bitmap                    needed to represent the particular character's shape                    at a desired level of readability at said                    scaled-down text size; and                -   the size used for a given string in the layout                    corresponds to the size of the given string at the                    given scaled-down text size at which said string                    will be drawn in said scaled-down display, scaled-up                    by said scale factor.            -   COMPUTER HAS OS THAT DISPLAY DIGITAL CONTENT ON SCREEN                IN PORTRAIT ORIENTATION, AND SCALED DOWN DISPLAY IS IN                LANDSCAPE ORIENTATION USING FONT BITMAPS HAVING                LANDSCAPE ORIENTATION                -   8. A method as in Innovation 2 wherein:                -   said screen is part of a computer having an                    operating system that displays digital content,                    including text strings composed on said computer                    from individual font bitmaps, on said screen in a                    portrait orientation; and                -   said scaled-down display of a portion said layout is                    drawn on said screen in a landscape orientation;                -   wherein said composing of text from individual font                    bitmaps composes text in a landscape orientation                    using font bitmaps having a landscape orientation                    relative to said screen.                -   FONTS BITMAPS ARE SUBPIXEL OPTIMIZED, BASED ON                    SUBPIXEL COVERAGE VALUE AND COLOR BALANCING, FOR                    SCREEN'S SUBPIXEL PATTERN WHEN DRAWN TO IN LANDSCAPE                    ORIENTATION                -    9. A method as in Innovation 8 wherein:                -    the screen on which the scaled down display is                    drawn has pixels comprised of a given arrangement of                    separately-addressable, differently-colored                    subpixels;                -    said arrangement of subpixels within pixels of the                    screen cause subpixel color to vary:                -    along a first bitmap display axis relative to                    bitmaps drawn on said screen in a portrait                    orientation; and                -    along a second, perpendicular bitmap display axis                    relative to bitmaps drawn on said screen in a                    landscape orientation;                -    a given font bitmap used to compose the image of                    text in said scaled-down display is a                    subpixel-optimized bitmap that:                -    is optimized for display in which said subpixel                    color variation occurs along said second display                    axis relative to said font bitmap; and                -    assigns a luminosity value to each given sub-pixel                    of a screen pixel having said given arrangement of                    differently-colored subpixels that is drawn to by                    said font bitmaps as a function of:                -    a coverage value representing the percent of the                    given subpixel that is covered by a character shape                    being represented by the font bitmap;                -    in the case of at least some subpixels of said font                    bitmap, a color balancing distribution of a percent                    of the given subpixel's coverage value from said                    coverage value to coverage values of nearby                    subpixels, including subpixels of different colors,                    made to a prevent color imbalance that would result                    from the difference between the given subpixel's                    coverage value and the coverage values of a given                    set of one or more nearby subpixels of different                    colors; and                -    in the case of at least some subpixels of said font                    bitmap, such a color balancing distribution to the                    given subpixel's coverage value of a portion of                    coverage values from one or more nearby subpixels.            -   REPLACING FONTS SPECIFIED BY WEB PAGE AS BEING FONTS TO                BE DISPLAYED AT DIFFERENT SIZE WITH FONTS OF THE SAME                SIZE BEFORE PERFORMING SAID LAYOUT AND DISPLAY TO A                GREATER QUANTITY OF READABLE TEXT TO FIT IN THE                SCALED-DOWN DISPLAY                -   10. A method as in Innovation 2 wherein different                    portions of text specified by the web page as being                    different types of text that are commonly displayed                    with different size fonts are represent with fonts                    of the same size before performing said layout and                    display to allow a greater quantity of readable text                    to fit in the scaled-down display.        -   FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND            ALIGNMENT HAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE            BOUNDARIES WITH PIXEL BOUNDARIES            -   11. A method as in Innovation 1 wherein:            -   the font bitmaps used to compose the image of text in                said scaled-down display are anti-aliased bitmaps that                assign a color value to a given screen pixel as a graded                function of a coverage value representing the percent of                the given pixel that is covered by a character shape                being represented by the font bitmap; and            -   the shape and pixel alignment of a character represented                by such a font bitmap has been selected to increase the                degree of alignment of edges of the character shape with                pixel boundaries of the font bitmap as a function of the                particular pixel size of each such a font bitmap.            -   FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL                COVERAGE VALUE AND COLOR BALANCING                -   12. A method as in Innovation 11 wherein:                -   the screen on which the scaled-down display is drawn                    has pixels comprised of a given arrangement of                    separately-addressable, differently-colored                    subpixels;                -   the anti-aliased font bitmaps used to compose the                    image of text in said scaled-down display are                    subpixel-optimized bitmaps that assign a luminosity                    value to each given subpixel of a screen pixel                    having said given arrangement of differently-colored                    subpixels as a function of:                -   a coverage value representing the percent of the                    given subpixel that is covered by a character shape                    being represented by the font bitmap;                -   in the case of at least some subpixels of said font                    bitmaps, a color balancing distribution of a percent                    of the given subpixel's coverage value from said                    coverage value to coverage values of nearby                    subpixels, including subpixels of different color,                    made to a prevent color imbalance that would result                    from the difference between the given subpixel's                    coverage value and the coverage values of a given                    set of one or more nearby subpixels of different                    colors; and                -   in the case of at least some subpixels of said font                    bitmaps, such a color balancing distribution to the                    given subpixel's coverage value of a portion of                    coverage values from one or more nearby subpixels.                -   COLOR BALANCING DISTRIBUTES THAT PORTION OF A                    SUBPIXEL'S COVERAGE VALUE THAT CAUSES COLOR                    IMBALANCE WITHIN THE SUBPIXEL'S PIXEL                -    13. A method as in Innovation 12 wherein said color                    balancing distributions only distribute portions of                    a subpixel's coverage value that causes color                    imbalance within the whole pixel of which it is                    part.                -   IMAGES ARE SUB-PIXEL OPTIMIZATION WITH LUMINANCE                    ASSIGNED TO EACH SUBPIXEL BEING A FUNCTION OF                    LUMINANCE OF ITS COLOR VALUE IN A CORRESPONDING                    WINDOW IN HIGHER RESOLUTION IMAGE                -    14. A method as in Innovation 12 wherein:                -    the images drawn in said scaled-down display are                    subpixel-optimized images that assign a luminosity                    to each differently-colored subpixel in the display                    of such a scaled-down image as a function of the                    amount of luminosity of the given subpixel's color                    found in a window associated with the given subpixel                    in the higher resolution image the scaled-down image                    represents; and                -    the window in the higher resolution image                    associated with each subpixel of a given pixel has a                    different position relative to the higher resolution                    image that corresponds to the different position of                    its corresponding subpixel in the scaled-down image.        -   FIRST COMPUTER ACCESSES AND LAYS OUT CONTENT, AND SCALES            DOWN IMAGES, AND SECOND COMPUTER DRAWS SCALED DOWN DISPLAY,            INCLUDING COMPOSITION OF TEXT IMAGES FROM FONT BITMAPS            -   15. A method as in Innovation 1 wherein:            -   a first computer device performs said accessing of the                digital content, laying out of said digital content;                said scaling down of said images;            -   a second computer device has said screen and performs                said drawing of the scaled-down display on said screen,                including the composing of text images from font                bitmaps; and            -   said coordinates of images and text produced as a result                of said layout, said scaled down images, and said text                contained in said digital content are download from said                first computer device to said second computer device.        -   DIGITAL CONTENT IS SCREEN IMAGE CREATED AT VIRTUAL            RESOLUTION BY ONE OR MORE APPLICATIONS            -   16. A method as in Innovation 1 wherein:            -   said digital content is a screen image produced at said                virtual resolution by one or more application programs;                and            -   said scaled-down display shows said portion of said                screen image with the images and text of said screen                image and their positions scaled down by said scale                factor.    -   ACCESSING WEB PAGE, THEN—ON SCREEN OF COMPUTING SYSTEM WITH OS        THAT DISPLAYS A GRAPHICAL USER INTERFACE IN A PORTRAIT        ORIENTATION—DISPLAYING A SCALED-DOWN REPRESENTATION OF WEB PAGE        IN A LANDSCAPE ORIENTATION, INCLUDING DISPLAYING IN A LANDSCAPE        ORIENTATION IMAGES THAT ARE SCALED-DOWN AND TEXT COMPOSED OF        FONTS BITMAPS DISPLAYED IN A LANDSCAPE ORIENTATION        -   17. A method of displaying a web page comprising:        -   accessing the web page, including one or more images and one            or more text strings;        -   displaying in a landscape orientation, in a scaled-down            manner, a portion of said web page, including at least some            of images and text strings;        -   wherein said displaying is performed on a screen of a            computer having an operating system that displays an            associated graphical user interface on said screen in a            portrait orientation;        -   wherein the scaled-down displaying of said web page            includes:        -   displaying a given images at a scaled-down pixel size; and        -   displaying a given text strings with a string image composed            on said computer from a plurality of font bitmaps            corresponding to the characters of said string when            displayed in said landscape orientation; and        -   the shape and pixel alignment of a given character            represented in said display by one of said font bitmaps have            been selected as a function of the given size of said bitmap            to improve the readability of said bitmap at said given            bitmap size.        -   OS CAN ONLY DISPLAY GUI IN PORTRAIT ORIENTATION            -   18. A method as in Innovation 17 wherein the operating                system can only display said graphical using interface                on said screen in said portrait orientation.        -   OS CAN DISPLAY GUI IN BOTH PORTRAIT AND LANDSCAPE            ORIENTATION            -   19. A method as in Innovation 17 wherein the operating                system can display said graphical using interface on                said screen in either said portrait or said landscape                orientation.        -   ALLOWING USER TO SELECT TO HAVE SUCH SCALED-DOWN DISPLAYS            PERFORMED AT DIFFERENT SCALE FACTORS, WITH DIFFERENT FONT            SIZES USED FOR DISPLAY OF SIMILAR TEXT AT DIFFERENT SELECTED            SCALE FACTORS, AND IN WHICH THE SHAPE AND PIXEL ALIGNMENT OF            CORRESPONDING CHARACTERS IN FONT BITMAPS OF SUCH DIFFERENT            FONT SIZES ARE DIFFERENT TO IMPROVE READABILITY OF FONT            BITMAPS AT EACH SUCH DIFFERENT FONT SIZE            -   20. A method as in Innovation 17 wherein            -   said method includes allowing a user to select to have                said scaled-down display performed for a given web page                at different scale factors;            -   the scale-down pixel size at which each images is shown                in displays performed at different scale factors varies                as a function of said different scale factors;            -   the sizes of the font bitmaps shown in said string                images in displays performed at different scale factors                varies as a function of said different scale factors;                and            -   the shape and pixel alignment of a given character in                the different font bitmaps shown for the given character                in displays performed at different scale factors are                different to improve readability of the character at                each of the different font bitmap sizes used to                represent the character at different scale factors.        -   ANTI-ALIASED FONT BITMAPS            -   21. A method as in Innovation 17 wherein:            -   the font bitmaps used to compose one or more of said                string images are anti-aliased bitmaps that assign a                color value to given screen pixel as a graded function                of a coverage value representing the percent of the                given pixel that is covered by a character shape being                represented by the font bitmap; and            -   the shape and pixel alignment of a character represented                by such a font bitmap has been selected to increase the                degree of alignment of edges of the character shape with                pixel boundaries of the font bitmap as a function of the                particular pixel size of each such a font bitmap.            -   FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS                HAVE A SHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE                READABILITY AT SUCH A SMALL SIZE                -   22. A method as in Innovation 21 wherein:                -   font bitmaps used to compose string images include                    small font bitmaps having a small font size of eight                    pixels per em or less; and                -   the shape and pixel alignment of a character                    represented by such a small font bitmap has been                    selected to increase the degree of alignment of                    edges of the character shape with pixel boundaries                    of the small font bitmap as a function of the                    particular pixel size of each such small font                    bitmap.                -   FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN                    ADVANCE WIDTH OF 4 PIXEL COLUMNS OR LESS                -    23. A method as in Innovation 22 wherein the font                    bitmaps of said small font size represent a majority                    of characters of the Roman alphabet within an                    advance width of four pixel columns or less.                -    WITH X-HEIGHT GREATER THAN 4 PIXELS                -    24. A method as in Innovation 23 wherein the font                    bitmaps of said small font size represent a majority                    of lowercase letters with an x-height greater than                    four pixels.            -   FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL                COVERAGE VALUE (USING SUBPIXEL ARRANGEMENT IN LANDSCAPE                ORIENTATION) AND COLOR BALANCING                -   25. A method as in Innovation 21 wherein:                -   the screen on which the scaled-down display is drawn                    has pixels comprised of separately-addressable,                    differently-colored subpixels, in which the                    differently colored subpixels of each pixel have a                    first subpixel arrangement when said screen viewed                    in the landscape orientation, and a second subpixel                    arrangement when the screen viewed in the portrait                    orientation;                -   the anti-aliased font bitmaps used to compose said                    text images are subpixel-optimized bitmaps that                    assign a luminosity value to each given subpixel of                    a screen pixel having said first subpixel                    arrangement as a function of:                -   a coverage value representing the percent of the                    given subpixel that is covered by a character shape                    being represented by the font bitmap;                -   in the case of at least some subpixels of said font                    bitmaps, a color balancing distribution of a percent                    of the given subpixel's coverage value from said                    coverage value to coverage values of nearby                    subpixels, including subpixels of different color,                    made to a prevent color imbalance that would result                    from the difference between the given subpixel's                    coverage value and the coverage values of a given                    set of one or more nearby subpixels of different                    colors; and                -   in the case of at least some subpixels of said font                    bitmaps, such a color balancing distribution to the                    given subpixel's coverage value of a portion of                    coverage values from one or more nearby subpixels.                -   SUBPIXEL RESOLUTION IS HIGHER ALONG LANDSCAPE AXIS                    THAN ALONG PORTRAIT AXIS, ALLOWING INCREASE IN                    SPATIAL RESOLUTION PROVIDED BY SUBPIXEL OPTIMIZATION                    TO PROVIDE EVEN GREATER HORIZONTAL RESOLUTION FOR                    TEXT OF WEB PAGE SHOWN IN LANDSCAPE ORIENTATION                -    26. A method as in Innovation 25 wherein:                -    the subpixels of a given pixel in said screen vary                    in color along the horizontal direction when said                    screen is viewed in said landscape direction;                -    so the added resolution made possible by subpixel                    optimization increases the horizontal resolution                    available to show text characters drawn on said                    screen in the landscape orientation.                -   COLOR BALANCING DISTRIBUTES THAT PORTION OF A                    SUBPIXEL'S COVERAGE VALUE THAT CAUSES COLOR                    IMBALANCE WITHIN THE SUBPIXEL'S PIXEL                -    27. A method as in Innovation 25 wherein said color                    balancing distributions only distribute portions of                    a subpixel's coverage value that causes color                    imbalance within the whole pixel of which it is                    part.                -    FONT BOUNDARIES ALIGNED WITH PIXEL BOUNDARIES IN                    BITMAPS TO MINIMIZE COLOR BALANCING                -    28. A method as in Innovation 27 wherein the                    character shapes represented by said                    subpixel-optimized font bitmaps and the alignment of                    such shapes to the pixels in said bitmaps have been                    selected as a function of the size of such bitmaps                    to improve the alignment of the edges of such shapes                    which edges of bitmap pixels, so as to decrease the                    differences between subpixel coverage values within                    the pixels of such bitmaps that require color                    balancing to prevent color imbalances.        -   COMPUTER IS A HAND-HELD COMPUTER            -   29. A method as in Innovation 17 wherein said computer                is a handheld computer.        -   DISPLAY COMPUTER REQUESTS WEB PAGE FROM A REMOTE COMPUTER            OVER A COMPUTER NETWORK, REMOTE COMPUTER ACCESSES WEB PAGE,            LAYS IT OUT, AND DOWNLOADS IMAGES, STRINGS, LINKS, AND            RELATIVE POSITIONS TO DISPLAY COMPUTER, WHICH DISPLAYS THEM.            -   30. A method as in Innovation 17 wherein:            -   the computer on which said scaled-down display is shown                requests a web page from a remote computer over a                computer network;            -   said remote computer accesses said web page;            -   said remote computer lays said web page out to determine                relative positions corresponding to the relative                positions at which said images, strings, and links are                to be displayed; and            -   said remote computer downloads said images, strings,                links, and relative positions over said computer network                to said display computer; and            -   said display computer draws said images, strings, and                links at relative positions on said screen determined as                a function of said downloaded relative positions.            -   REMOTE COMPUTER SCALE DOWN IMAGES                -   31. A method as in Innovation 30 wherein said remote                    computer:                -   scales down each of said displayed images to said                    scaled-down pixel size and downloads said                    scaled-down image to the display computer;                -   performs said layout based on a font metrics                    determined for each strings as a function of the                    size of the individual font bitmaps that will be                    used to compose the string image said display                    computer; and.    -   MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION        -   32. A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 31; and        -   one or more processors for executing said instructions.    -   MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE MEDIA        INNOVATION        -   A computer system comprising:        -   one or more computer readable memory including program            instructions for performing the functions of the method of            any one of the innovations numbered 1 through 31.    -   BROWSE IN LANDSCAPE INSTEAD OF PORTRAIT ORIENTATION ON COMPUTING        DEVICE WITH AN OS THAT DRAWS FONTS IN PORTRAIT ORIENTATION AND        WITH A SCREEN WITH HORIZONTALLY STRIPED SUBPIXELS, USING        HORIZONTALLY SUB-PIXEL OPTIMIZED FONT BITMAPS, SO THAT SCREEN        HAS VERTICALLY STRIPED SUBPIXELS        -   A method of browsing web pages over the Internet comprising:        -   using as a browsing computer a computing device having:        -   a screen portrait orientation having a higher whole pixel            resolution in the vertical direction than in the horizontal            direction, said screen having pixels comprised of separately            addressable differently colored sub-pixels, with each            subpixel of a pixel extending across the width of the pixel            one above the other, so that the sub-pixel resolution of the            display is higher in the vertical direction than in the            horizontal direction;        -   an operating system which has software for displaying a            graphical user interface on the said screen in said portrait            orientation;        -   running browsing software on said browser computer which            displays one or more web pages on said screen in a landscape            orientation, perpendicular to the portrait orientation, so            the higher subpixel resolution will extend in a horizontal            direction relative to the display of the web page, including            displaying the web pages in said landscape orientation using        -   font bitmaps having a higher horizontal subpixel resolution            than vertical subpixel resolution, in which the luminosity            of each horizontally-displaced, differently-colored,            subpixel of a given pixel used in the display of a portion            of a given character's shape is derived as a function of the            extent to which the outline of the given character's shape            covers that individual sub-pixel.        -   BROWSER ALSO DISPLAYS SUB-PIXEL OPTIMIZED IMAGES IN ROTATED            ORIENTATION            -   A method as in the parent innovation wherein said                browser software also displays sub-pixel resolution                images in the landscape orientation, in which displays                the luminosity of each differently colored subpixel of a                given pixel is derived from a different area of a higher                resolution version of the same image.        -   OS ONLY DRAWS GUI IN PORTRAIT ORIENTATION        -   BROWSER DOWNLOADS FONTS BITMAPS WHICH HAVE BEEN SUBPIXEL            OPTIMIZED FOR DISPLAY WITH A HIGHER HORIZONTAL THAN VERTICAL            SUBPIXEL RESOLUTION    -   ON A COMPUTING SYSTEM HAVING A SCREEN WITH SUB-PIXEL RESOLUTION        WHICH IS HIGHER IN A FIRST DIRECTION THAN A PERPENDICULAR SECOND        DIRECTION, AND HAVING AN OPERATING SYSTEM WHICH HAS A GUI WHICH        CAN BE DISPLAYED IN A FIRST ORIENTATION IN WHICH THE FIRST        DIRECTION IS VERTICAL, RECEIVING DIGITAL CONTENT INCLUDING A        TEXT STRING, DISPLAYING THE INDIVIDUAL CHARACTERS OF THE TEXT        STRING USING CORRESPONDING FONTS BITMAPS IN A SECOND,        PERPENDICULAR ORIENTATION        -   OS CAN ONLY DISPLAY MAJORITY OF ITS GUI ELEMENTS IN FIRST            ORIENTATION        -   OS CAN DISPLAY MAJORITY OF ITS GUI ELEMENTS IN BOTH FIRST            AND SECOND ORIENTATION        -   FONT BITMAPS HAVE BEEN SUBPIXEL OPTIMIZED FOR HIGHER            SUBPIXEL RESOLUTION IN THEIR HORIZONTAL DIRECTION        -   COMPUTER SYSTEM IS A HAND-HELD OR SMALLER COMPUTER SYSTEM        -   DIGITAL CONTENT IS LAID OUT FOR DISPLAY IN THE SECOND            ORIENTATION ON A REMOTE COMPUTER AND IS DOWNLOAD TO THE            COMPUTING SYSTEM FOR DISPLAY        -   TEXT STRING IS PART OF DIGITAL CONTENT INCLUDING IMAGES AS            WELL AS TEXT AND IMAGES ARE ALSO DISPLAYED AT SECOND            ORIENTATION        -   DIGITAL CONTENT INCLUDES WEB PAGES        -   DIGITAL CONTENT INCLUDES SCREEN IMAGES PRODUCED BY A            COMPUTER APPLICATION    -   ON A COMPUTING SYSTEM HAVING A SCREEN WITH SUB-PIXEL RESOLUTION        WHICH IS HIGHER IN A FIRST DIRECTION THAN A PERPENDICULAR SECOND        DIRECTION, AND HAVING AN OPERATING SYSTEM WHICH HAS A GUI WHICH        CAN BE DISPLAYED IN A FIRST ORIENTATION IN WHICH THE FIRST        DIRECTION IS VERTICAL, RECEIVING DISPLAYING DIGITAL CONTENT        INCLUDING TEXT IN A SECOND, PERPENDICULAR ORIENTATION, USING ONE        OR MORE BITMAPS WHICH HAVE BEEN SUBPIXEL OPTIMIZED FOR HIGHER        SUBPIXEL RESOLUTION IN THEIR HORIZONTAL DIRECTION        -   OS CAN ONLY DISPLAY MAJORITY OF ITS GUI ELEMENTS IN FIRST            ORIENTATION        -   OS CAN DISPLAY MAJORITY OF ITS GUI ELEMENTS IN BOTH FIRST            AND SECOND ORIENTATION        -   COMPUTER SYSTEM IS A HAND-HELD OR SMALLER COMPUTER SYSTEM        -   TEXT STRING IS PART OF DIGITAL CONTENT INCLUDING IMAGES AND            IMAGES ARE ALSO DISPLAYED AT SECOND ORIENTATION            -   DIGITAL CONTENT INCLUDES WEB PAGES            -   DIGITAL CONTENT INCLUDES SCREEN IMAGES PRODUCED BY A                COMPUTER APPLICATION        -   DIGITAL CONTENT IS LAID OUT FOR DISPLAY IN THE SECOND            ORIENTATION ON A REMOTE COMPUTER AND IS DOWNLOAD TO THE            COMPUTING SYSTEM FOR DISPLAY    -   ON A HAND-HELD COMPUTING SYSTEM HAVING A SCREEN WITH A WHOLE        PIXEL RESOLUTION WHICH IS HIGHER IN A FIRST DIRECTION THAN A        PERPENDICULAR SECOND DIRECTION, AND HAVING AN OPERATING SYSTEM        WHICH HAS A GUI WHICH CAN BE DISPLAYED IN A FIRST ORIENTATION IN        WHICH THE FIRST DIRECTION IS VERTICALL, DISPLAYING A DIGITAL        CONTENT IN A SECOND, PERPENDICULAR ORIENTATION        -   OS CAN ONLY DISPLAY GUI ELEMENTS IN FIRST ORIENTATION        -   OS CAN DISPLAY GUI IN BOTH FIRST AND SECOND ORIENTATION        -   AN APPLICATION SEPATE FROM THE OS DISPLAYS THE DIGITAL            CONTENT AND THAT APPLICATION GENERATES ITS OWN GRAPHICAL            USER INTERFACE WHICH IS DISPLAYED AT THE SECOND ORIENTATION        -   DIGITAL CONTENT INCLUDES A WEB PAGE            -   WEB PAGE IS SCALED-DOWN BEFORE IT IS DISPLAYED        -   DIGITAL CONTENT IS LAID OUT FOR DISPLAY IN THE SECOND            ORIENTATION ON A REMOTE COMPUTER AND IS DOWNLOAD TO THE            COMPUTING SYSTEM FOR DISPLAY

1. A method of displaying a web page comprising: accessing a web page'scontents, including one or more images and one or more strings ofdisplayable text, where the contents of said web page do not specify adesignated layout position for each of said images and text; laying outthe web page in a layout space having a horizontal and a vertical layoutresolution, so as to determine a layout position in said layout spacefor each of said images and each portion of one of said strings that isto be displayed on a separate line in said layout space, said laying outincluding: treating said images and characters of said displayable textas having respective layout sizes in said layout space; flowingdisplayable characters of said strings across line boundaries, based onthe layout size of said displayable characters, by breaking portions ofstrings that cross a line boundary into separate single line strings,each of which fits on a single line in said layout space; and displayingat least a portion of said laid out web page in a display shown on adisplay screen at a selected scale factor, including: displaying bothsaid images and single line character strings at locations in saiddisplay corresponding to the positions at which they have been laid outin said layout space, scaled as a function of said selected scalefactor; representing each of said images in said display by acorresponding bitmap in said display that has a pixel size relative tothe image's layout size determined as a function of said selected scalefactor; and representing a given single line strings by an imagecomposed from a plurality of separate font bitmaps representing thecharacters in said string, where the image of an individual character ofsaid string has a pixel size relative to the character's layout sizedetermined as a function of said selected scale factor; wherein: saiddisplaying of a portion of said laid out web page is performed at eachof at least two different selected scale factors; and the shape andpixel alignment of a character represented by one of said font bitmap ata given scale factor has been selected to improve readability as afunction of the size of said font bitmap used to represent the characterat the given scale factor, causing a given character in a given stringin two displayings of a given portion of said web page layout performedat different selected scale factors to be displayed with font bitmaps ofdifferent pixel size that represent the given character with differentshapes and pixel alignments.
 2. A method as in claim 1 wherein: saiddifferences in the shape and pixel alignment of character at saiddifferent scale factors cause the relative horizontal width of the fontbitmaps of some characters to change at different scale factors; one ormore of said text strings are laid out in a horizontal manner; and therelative horizontal width of spacing between individual characters in agiven single line strings relative to the horizontal width of charactersis changed when displayed at different scale factors to compensate forsuch change in relative character width.
 3. A method as in claim 1wherein: the font bitmaps used to represent text at each of saiddifferent scale factors are anti-aliased bitmaps that assign a colorvalue to a given screen pixel as a graded function of a coverage valuerepresenting the percent of the given pixel that is covered by acharacter shape being represented by the font bitmap; and the shape andpixel alignment of a given character represented by a different fontbitmap at each of said different scale factors has been selected toincrease the degree of alignment of edges of the character shape withpixel boundaries of the font bitmap used at each such the scale factor.4. A method as in claim 3 wherein: the screen on which the displays aredrawn has pixels comprised of a given arrangement ofseparately-addressable, differently-colored subpixels; the anti-aliasedfont bitmaps used to compose the images of text in said displays aresubpixel-optimized bitmaps that assign a luminosity value to a subpixelof a screen pixel having said given arrangement of differently-coloredsubpixels as a function of: a coverage value representing the percent ofthe subpixel that is covered by a character shape being represented bythe font bitmap; in the case of at least some subpixels of said fontbitmaps, a color balancing distribution of a percent of the subpixel'scoverage value from said coverage value to coverage values of nearbysubpixels, including subpixels of different color, made to prevent acolor imbalance that would otherwise result from the difference betweenthe subpixel's coverage value and the coverage values of a given set ofone or more nearby subpixels of different colors; and in the case of atleast some subpixels of said font bitmaps, such color balancingdistributions to the subpixel's coverage value from one or more nearbysubpixels.
 5. A method as in claim 4 wherein said color balancingdistributions only distribute portions of a subpixel's coverage valuethat causes color imbalance within the whole pixel of which it is part.6. A method as in claim 3 wherein: said anti-aliased font bitmaps usedto represent text at one selected scale factor include small fontbitmaps having a small font size of eight pixels per em or less; and theshape and pixel alignment of characters represented in said small fontbitmaps have been selected as a function of said small font size toincrease the degree of alignment of edges of the character shape withpixel boundaries of the small font bitmap.
 7. A method as in claim 6wherein the font bitmaps of said small font size represent a majority ofcharacters of the Roman alphabet within an advance width of 4 pixelcolumns or less.
 8. A method as in claim 7 wherein the font bitmaps ofsaid small font size represent a majority of lowercase letters with anx-height greater than 4 pixels.
 9. A method as in claim 1: includingproviding a user interface that allows a user to select a succession ofdifferent scale factors selected from among a set of at least twodifferent selectable scale factors; and wherein said displaying isperformed at each of said successively selected scale factors.
 10. Amethod as in claim 1 wherein: the web page's content indicates pixelsizes at which images are to be displayed; and at least two of saidselected scale factors causes said display to represent said images atpixel sizes smaller that said indicated sizes.
 11. A method as in claim1 wherein one or more of said selected scale factors have differentcomponent values in a horizontal and a vertical direction, causing thescaling of images and characters to be different in those differentdirections.
 12. A method as in claim 1 wherein one or more of saidselected scale factors have the same value in a horizontal and avertical directions, causing the scaling of images and characters to bethe same in those different directions.
 13. A method as in claim 1wherein: said display screen has pixels each comprised of a givenarrangement of separately-addressable, differently-colored,differently-positioned subpixels; and the bitmap used to represent agiven image accessed as part of a web page in said display of a portionof a web page's layout at a given one of said selected scale factors isa subpixel-optimized image that: is scaled relative to the givenaccessed imaged as a function of said given selected scale factor; andassigns a luminosity to each differently-colored subpixel in the displayof such an image as a function of the amount of luminosity of the givensubpixel's color in a source image window in the given accessed imagethat is associated with the given subpixel; where the source imagewindow associated with each given subpixel has a position relative tothe accessed image that corresponds to the position of the givensubpixel relative to the subpixel-optimized image, such that theposition of the source image windows associated with different subpixelsof a given pixel vary in correspondence with the different positions ofsuch subpixels relative to said pixel.
 14. A method as in claim 13wherein: the bitmaps used to represent a given accessed image in saiddisplay at each of two different selected scale factor are two differentsubpixel-optimized images; and these two different subpixel optimizedimages assigns luminosity values to subpixels based on source imagewindows that have different sizes and positions relative to the givenaccessed image.
 15. A method as in claim 1 wherein: said displayings atsaid different scale factors are performed on a client computer; theclient computer requests a web page from a remote computer over acomputer network; said remote computer performs said accessing of theweb page's contents; said remote computer performs said laying out ofsaid web page; said remote computer downloads a representation of saidimages, strings, and layout positions over said computer network to saidclient computer; and said client computer performs said displaying ateach of said different scale factors by drawing said images, strings,and links at positions and sizes on said screen corresponding to thosein said layout performed on said remote computer as scaled as a functionof said different scale factors.
 16. A method as in claim 15 whereinsaid made composed from a plurality of separate fonts bitmaps thatrepresents a given single line string is composed by said clientcomputer for the displaying performed at each of said different selectedscale factors.
 17. A method as in claim 15 wherein: said remote computerscales the images accessed as part of said web page to produce saidscaled bitmaps used to represent said one or more images in the displayat a first of said two scale factors, which scaled bitmaps aretransmitted to said client computer as part of said download; saidclient computer performs said displaying for said first scale factor,including representing images in said display with the downloaded imagebitmaps that have been scaled for said first scale factors; said clientcomputer has a user interface that allows a user to select to have thelayout displayed at a second of said scale factors; and said clientcomputer responds to a selection to display the layout at said secondscale factor by displaying the layout of said web page at said secondscale factor without a download from said remote client of images scaledfor display at said second scale factor.
 18. A method as in claim 17wherein said client's displaying of the layout of said web page at asecond scale factor without download from said remote client of imagesscaled for said second scale factor includes: re-scaling said imagesscaled for display at said first scale factor to a size appropriate fordisplay at said second scale factor; and displaying said re-scaledimages at positions in said display produced at said second scale factorcorresponding to the layout positions of said images at said secondscale factor.
 19. A method as in claim 18 wherein: the client computeralso responds to said selection to display the layout at said secondscale factor by uploading to the remote computer an indication that theremote computer should download images scaled for said second scalefactor; in response to the uploading of such an indication, the remotecomputer: scales the images accessed as part of said web page to producebitmaps scaled for use in the displaying at said second scale factor;and downloads the images scaled for the second scale factor to saidclient computer; and after the images scaled for the second scale factorhave been downloaded, the client computer uses them to replace, in saiddisplay of the layout at said second scale factor, the previouslydisplayed bitmaps that had been re-scaled by the client computer.
 20. Amethod as in claim 1 further including: providing a user interface thatallows a user to drag a pointing device across a selected part of saidweb page's layout shown on said screen at a first scale factor; andresponding to such a drag by performing a zoom-to-fit displaying of saidselected part of the web page layout at a second scale factor selectedto cause said selected part of said web page layout to have a size thatfits the size of said screen.
 21. A method as in claim 20 wherein: theuser interface that allows a user to drag a pointing device across aselected part of the web page layout responds to such a drag thatextends across a boundary associated with a given edge of said screen byscrolling, onto said screen, across said given screen edge, portions ofthe web page layout previously not shown on the screen at said firstscale factor, so as to allow said drag to select as said selected partof the web page layout a part that was either too large or not properlypositioned to fit entirely within said screen when the drag firststarted; and said responding to such a drag performs said zoom-to-fitdisplaying for the part of the web page layout selected by such a drag.22. A method as in claim 1 further including: providing a user interfacethat allows a user to click a pointing device on a selected part of saidweb page's layout shown on said screen at a first scale factor; andresponding to such a click by performing a displaying of said selectedpart of the web page layout at a second scale factor that causes saidselected part to be shown at a larger size.
 23. A method as in claim 1further including: providing a user interface that allows a user to draga pointing device across a part of said web page's layout shown on saidscreen at a first of said selected scale factor; and responding to sucha drag that extends across a boundary associated with a given edge ofsaid screen by scrolling, onto said screen, across said given screenedge, portions of the web page layout previously not shown on the screenat said first scale factor.
 24. A method as in claim 1 furtherincluding: responding to a press of a pointing device, made at a firstlayout position relative to a first portion of the web page layoutdisplayed on said screen at a first scale factor, by replacing all orpart of the display of said first layout portion with a display of asecond, smaller portion of said web page layout, which includes saidfirst position, at a second scale factor that causes said smallerportion to be shown at a larger size; responding to a subsequentreleases of said press, made at a selected position relative to thelayout shown at said second scale factor, by: acting as if a mouse clickhad occurred at said selected position relative to said web page layout;and replacing the display of said smaller portion on said screen with adisplay of the web page layout at said first scale factor.
 25. A methodas in claim 24 wherein said replacement of all or part of the display ofsaid first portion of said web page layout with a display of saidsmaller portion of said layout during the press of said pointing devicereplaces all of the display of said first portion of said layout.
 26. Amethod as in claim 24 further including displaying a cursor thatindicates the position of the pointing device relative to the portion ofsaid web page layout displayed at said second scale factor during saidpress, to inform a user of the location that would be treated as saidselected position if the pointing device were released at its currentlocation.
 27. A method as in claim 26 wherein: said display screen is atouch screen display; and said cursor is displayed above the point atwhich the screen is being touched by a pointing device so the cursor canbe seen over that pointing device.
 28. A method as in claim 24 whereinsaid first layout position, which corresponds to the layout position ofsaid pointing device at the time of said press, has substantially thesame screen position in said display at said second scale factor made inresponse to said press as it did in the display at said first scalefactor at the time said press was made.
 29. A method as in claim 24further including responding to movement of the pointing device duringsaid press that extends across a boundary associated with a given edgeof said screen by scrolling, onto said screen, across said given screenedge, portions of the web page layout previously not shown on the screenat said second scale factor, so as to allow said movement to select assaid selected position relative to the layout a position that was notshown on said screen at said second scale when said movement during thepress first started.
 30. A method as in claim 1 further including:performing a different displaying of a given portion of said laid outweb page that is similar to one of said displayings performed for saidat least two different scale factors, except that said differentdisplaying: is performed for a zoomed-out scale factor; and representssaid one or more single line string with a greeked bitmap that indicatesthe size and location of said string in said layout.
 31. A method ofdisplaying a web page comprising: accessing a web page's content,including one or more images and one or more strings of displayabletext; laying out the web page for display at a given virtual screenresolution having a given horizontal and vertical pixel resolution so asto determine a layout position for each of said images and each portionof one of said strings that is to be displayed on a separate line, withsaid layout positions being determined in a layout space having avirtual pixel width equal to the larger of (a) a minimum width requiredby the contents of the web page, if such a minimum width exists, or (b)the horizontal resolution of the virtual screen resolution, which everis larger, said laying out including: treating said images anddisplayable characters in said displayable text as having respectivelayout sizes in said layout space; flowing displayable characters ofsaid strings of across line boundaries, based on the layout size of saiddisplayable characters, by breaking portions of strings that cross aline boundary into separate single line strings, each of which fits on asingle line in said layout space; and displaying at least a portion ofsaid laid out web page in a display shown on a display screen at a givenscale factor, including: displaying both said images and single linecharacter strings at locations in said display corresponding to thepositions at which they have been laid out in said layout space, scaledas a function of said given scale factor; representing each of saidimages in said display by a corresponding bitmap that has a sizerelative to the image's layout size determined as a function of saidgiven scale factor; representing a given single line strings by an imagecomposed from a plurality of separate font bitmaps representing thecharacters in said string, where the image of an individual character ofsaid string has a pixel size relative to the character's layout sizedetermined as a function of said given scale factor; performing saidlayout and displaying of said web page at each of at least two differentvirtual screen resolutions; wherein: the layout performed at a first,larger, one of said virtual screen resolutions lays out said images andstrings at a first, relatively small, set of respective sizes relativeto said larger virtual screen resolution; the layout at a second,smaller, one of said virtual screen resolutions lays out said images andstrings at a second, relatively large, set of respective sizes relativeto said smaller virtual screen resolution; and the given scale factorsused, respectively, in the displaying performed at the first and secondvirtual screen resolutions are such that the images and text appear atsmaller pixel sizes in the display of the layout produced using saidlarger virtual screen resolution and appear at larger pixel sizes in thedisplay of the layout produced using said smaller virtual screenresolution; and the layout at the smaller virtual screen resolutionmakes text lines shorter relative to the size of fonts shown on thoselines.
 32. A method as in claim 31 wherein: said displaying at saiddifferent virtual screen resolutions are performed on a client computersystem; the client computer system requests said web page from a remotecomputer system over a computer network; said remote computer systemperforms said accessing of the web page; said remote computer systemperforms said laying out of said web page at each of said virtual screenresolutions; said remote computer system downloads a representation ofsaid images, strings, and layout positions over said computer network tosaid client computer system for each of said virtual screen resolutions;and said client computer system performs said displaying of said imagesand strings laid out at each of said virtual screen resolutions bydrawing said images, and single line strings at relative positions andsizes on said screen corresponding to those in said layouts performed ateach of said virtual screen resolutions on said remote computer system.33. A method as in claim 32 wherein said made composed from a pluralityof separate fonts bitmaps that represents a given single line string iscomposed by said client computer system for the layouts performed ateach of said virtual screen resolutions from font bitmaps correspondingto the characters of said strings.
 34. A method as in claim 31 wherein:at least in the displaying performed for the layout at one of saidvirtual screen resolutions, one or more of said single line strings arerepresented at a font size of 10 pixels per em or less and haveindividual characters represented by anti-aliased font bitmaps thatassign a color value to a given screen pixel as a graded function of acoverage value representing the percent of the given pixel that iscovered by a character shape being represented by the font bitmap; andthe shape and pixel alignment of a character represented by such a fontbitmap has been selected to increase the degree of alignment of edges ofthe character shape with pixel boundaries of the font bitmap as afunction of the font size of each such a font bitmap.
 35. A method as inclaim 34 wherein: the display screen on which displays are drawn haspixels comprised of a given arrangement of separately-addressable,differently-colored subpixels; the anti-aliased font bitmaps used torepresent said text strings at 10 pixels per em or less aresubpixel-optimized bitmaps that assign a luminosity value to each givensubpixel of said screen as a function of: a coverage value representingthe percent of the given subpixel that is covered by a character shapebeing represented by the font bitmap; in the case of at least somesubpixels of said font bitmaps, a color balancing distribution of apercent of a given subpixel's coverage value from said coverage value tocoverage values of nearby subpixels, including subpixels of differentcolor, made to a prevent color imbalance that would otherwise resultfrom the difference between the given subpixel's coverage value and thecoverage values of a given set of one or more nearby subpixels ofdifferent colors; and in the case of at least some subpixels of saidfont bitmaps, such color balancing distributions to a given subpixel'scoverage value from one or more nearby subpixels.
 36. A method as inclaim 35 wherein said color balancing distributions only distributeportions of a subpixel's coverage value that causes color imbalancewithin the whole pixel of which it is part.
 37. A method as in claim 34wherein: said anti-aliased font bitmaps include small font bitmapshaving a small font size of eight pixels per em or less; and the shapeand pixel alignment of characters represented in said small font bitmapshave been selected as a function of said small font size to increase thedegree of alignment of edges of the character shape with pixelboundaries of the small font bitmap.
 38. A method as in claim 37 whereinthe font bitmaps of said small font size represent a majority ofcharacters of the Roman alphabet within an advance width of 4 pixelcolumns or less.
 39. A method as in claim 38 wherein the font bitmaps ofsaid small font size represent a majority of lowercase letters with anx-height greater than 4 pixels.
 40. A method as in claim 31 wherein:said display screen has pixels each comprised of a given arrangement ofseparately-addressable, differently-colored, differently-positionedsubpixels; and the bitmap used to represent a given image, accessed aspart of a web page, in said display of a portion of the layout performedat one of said virtual screen resolutions is a subpixel-optimized imagethat: is scaled relative to the given accessed imaged as a function ofsaid virtual screen resolution; and assigns a luminosity to eachdifferently-colored subpixel in the display of such an image as afunction of the amount of luminosity of the given subpixel's color in asource image window in the given accessed image that is associated withthe given subpixel; where the source image window associated with eachgiven subpixel has a position relative to the accessed image thatcorresponds to the position of the given subpixel relative to thesubpixel-optimized image, such that the position of the source imagewindows associated with different subpixels of a given pixel varies incorrespondence with the different positions of such subpixels relativeto said given pixel.
 41. A method as in claim 40 wherein: the bitmapsused to represent a given accessed image in said displays produced usingeach of said two different virtual screen resolutions are two differentsubpixel-optimized images; and these two different subpixel optimizedimages assigns luminosity values to subpixels based on source imagewindows that have different sizes and positions relative to the givenaccessed image.
 42. A computing device comprising: one or more memorydevices for storing information, including programming information; oneor more processors for processing information in response to saidprogramming information; one or more input devices for receiving inputsfrom a user that can be supplied to one or more of said processors; adisplay screen on which information can be shown to a user under controlof said one or more processors; wherein said programming informationincludes programming for causing said computing device, under control ofsaid one or more processors, to perform the following functions:accessing a web page's contents, including one or more images and one ormore strings of displayable text, where the contents of said web page donot specify a designated layout position for each of said images andtext; laying out the web page in a layout space having a horizontal anda vertical layout resolution, so as to determine a layout position insaid layout space for each of said images and each portion of one ofsaid strings that is to be displayed on a separate line in said layoutspace, said laying out including: treating said images and characters ofsaid displayable text as having respective layout sizes in said layoutspace; flowing displayable characters of said strings across lineboundaries, based on the layout size of said displayable characters, bybreaking portions of strings that cross a line boundary into separatesingle line strings, each of which fits on a single line in said layoutspace; and displaying at least a portion of said laid out web page in adisplay shown on a display screen at a selected scale factor, including:displaying both said images and single line character strings atlocations in said display corresponding to the positions at which theyhave been laid out in said layout space, scaled as a function of saidselected scale factor; representing each of said images in said displayby a corresponding bitmap in said display that has a pixel size relativeto the image's layout size determined as a function of said selectedscale factor; and representing a given single line strings by an imagecomposed from a plurality of separate font bitmaps representing thecharacters in said string, where the image of an individual character ofsaid string has a pixel size relative to the character's layout sizedetermined as a function of said selected scale factor; wherein: saiddisplaying of a portion of said laid out web page is performed at eachof at least two different selected scale factors; and the shape andpixel alignment of a character represented by one of said font bitmap ata given scale factor has been selected to improve readability as afunction of the size of said font bitmap used to represent the characterat the given scale factor, causing a given character in a given stringin two displayings of a given portion of said web page layout performedat different selected scale factors to be displayed with font bitmaps ofdifferent pixel size that represent the given character with differentshapes and pixel alignments.
 43. A computing device as in claim 42wherein: said differences in the shape and pixel alignment of characterat said different scale factors cause the relative horizontal width ofthe font bitmaps of some characters to change at different scalefactors; one or more of said text strings are laid out in a horizontalmanner; and the relative horizontal width of spacing between individualcharacters in a given single line strings relative to the horizontalwidth of characters is changed when displayed at different scale factorsto compensate for such change in relative character width.
 44. Acomputing device as in claim 42 wherein: the font bitmaps used torepresent text at each of said different scale factors are anti-aliasedbitmaps that assign a color value to a given screen pixel as a gradedfunction of a coverage value representing the percent of the given pixelthat is covered by a character shape being represented by the fontbitmap; and the shape and pixel alignment of a given characterrepresented by a different font bitmap at each of said different scalefactors has been selected to increase the degree of alignment of edgesof the character shape with pixel boundaries of the font bitmap used ateach such the scale factor.
 45. A computing device as in claim 44wherein: the display screen on which the displays are drawn has pixelscomprised of a given arrangement of separately-addressable,differently-colored subpixels; the anti-aliased font bitmaps used tocompose the images of text in said displays are subpixel-optimizedbitmaps that assign a luminosity value to a subpixel of a screen pixelhaving said given arrangement of differently-colored subpixels as afunction of: a coverage value representing the percent of the subpixelthat is covered by a character shape being represented by the fontbitmap; in the case of at least some subpixels of said font bitmaps, acolor balancing distribution of a percent of the subpixel's coveragevalue from said coverage value to coverage values of nearby subpixels,including subpixels of different color, made to prevent a colorimbalance that would otherwise result from the difference between thesubpixel's coverage value and the coverage values of a given set of oneor more nearby subpixels of different colors; and in the case of atleast some subpixels of said font bitmaps, such color balancingdistributions to the subpixel's coverage value from one or more nearbysubpixels.
 46. A computing device as in claim 45 wherein said colorbalancing distributions only distribute portions of a subpixel'scoverage value that causes color imbalance within the whole pixel ofwhich it is part.
 47. A computing device as in claim 44 wherein: saidanti-aliased font bitmaps used to represent text at one selected scalefactor include small font bitmaps having a small font size of eightpixels per em or less; and the shape and pixel alignment of charactersrepresented in said small font bitmaps have been selected as a functionof said small font size to increase the degree of alignment of edges ofthe character shape with pixel boundaries of the small font bitmap. 48.A computing device as in claim 47 wherein the font bitmaps of said smallfont size represent a majority of characters of the Roman alphabetwithin an advance width of 4 pixel columns or less.
 49. A computingdevice as in claim 48 wherein the font bitmaps of said small font sizerepresent a majority of lowercase letters with an x-height greater than4 pixels.
 50. A computing device as in claim 42: including providing auser interface that allows a user to select a succession of differentscale factors selected from among a set of at least two differentselectable scale factors; and wherein said displaying is performed ateach of said successively selected scale factors.
 51. A computing deviceas in claim 42 wherein: the web page's content indicates pixel sizes atwhich images are to be displayed; and at least two of said selectedscale factors causes said display to represent said images at pixelsizes smaller that said indicated sizes.
 52. A computing device as inclaim 42 wherein one or more of said selected scale factors havedifferent component values in a horizontal and a vertical direction,causing the scaling of images and characters to be different in thosedifferent directions.
 53. A computing device as in claim 42 wherein oneor more of said selected scale factors have the same value in ahorizontal and a vertical direction, causing the scaling of images andcharacters to be the same in those different directions.
 54. A computingdevice as in claim 42 wherein: said display screen has pixels eachcomprised of a given arrangement of separately-addressable,differently-colored, differently-positioned subpixels; and the bitmapused to represent a given image accessed as part of a web page in saiddisplay of a portion of a web page's layout at a given one of saidselected scale factors is a subpixel-optimized image that: is scaledrelative to the given accessed imaged as a function of said givenselected scale factor; and assigns a luminosity to eachdifferently-colored subpixel in the display of such an image as afunction of the amount of luminosity of the given subpixel's color in asource image window in the given accessed image that is associated withthe given subpixel; where the source image window associated with eachgiven subpixel has a position relative to the accessed image thatcorresponds to the position of the given subpixel relative to thesubpixel-optimized image, such that the position of the source imagewindows associated with different subpixels of a given pixel vary incorrespondence with the different positions of such subpixels relativeto said pixel.
 55. A computing device as in claim 54 wherein: thebitmaps used to represent a given accessed image in said display at eachof two different selected scale factor are two differentsubpixel-optimized images; and these two different subpixel optimizedimages assigns luminosity values to subpixels based on source imagewindows that have different sizes and positions relative to the givenaccessed image.
 56. A computing device as in claim 42 wherein: saiddisplayings at said different scale factors are performed on a clientcomputer; the client computer requests a web page from a remote computerover a computer network; said remote computer performs said accessing ofthe web page's contents; said remote computer performs said laying outof said web page; said remote computer downloads a representation ofsaid images, strings, and layout positions over said computer network tosaid client computer; and said client computer performs said displayingat each of said different scale factors by drawing said images, strings,and links at positions and sizes on said screen corresponding to thosein said layout performed on said remote computer as scaled as a functionof said different scale factors.
 57. A computing device as in claim 56wherein said image composed from a plurality of separate fonts bitmapsthat represents a given single line string is composed by said clientcomputer for the displaying performed at each of said different selectedscale factors.
 58. A computing device as in claim 56 wherein: saidremote computer scales the images accessed as part of said web page toproduce said scaled bitmaps used to represent said one or more images inthe display at a first of said two scale factors, which scaled bitmapsare transmitted to said client computer as part of said download; saidclient computer performs said displaying for said first scale factor,including representing images in said display with the downloaded imagebitmaps that have been scaled for said first scale factors; said clientcomputer has a user interface that allows a user to select to have thelayout displayed at a second of said scale factors; and said clientcomputer responds to a selection to display the layout at said secondscale factor by displaying the layout of said web page at said secondscale factor without a download from said remote client of images scaledfor display at said second scale factor.
 59. A computing device as inclaim 58 wherein said client's displaying of the layout of said web pageat a second scale factor without download from said remote client ofimages scaled for said second scale factor includes: re-scaling saidimages scaled for display at said first scale factor to a sizeappropriate for display at said second scale factor; and displaying saidre-scaled images at positions in said display produced at said secondscale factor corresponding to the layout positions of said images atsaid second scale factor.
 60. A computing device as in claim 59 wherein:the client computer also responds to said selection to display thelayout at said second scale factor by uploading to the remote computeran indication that the remote computer should download images scaled forsaid second scale factor; in response to the uploading of such anindication, the remote computer: scales the images accessed as part ofsaid web page to produce bitmaps scaled for use in the displaying atsaid second scale factor; and downloads the images scaled for the secondscale factor to said client computer; and after the images scaled forthe second scale factor have been downloaded, the client computer usesthem to replace, in said display of the layout at said second scalefactor, the previously displayed bitmaps that had been re-scaled by theclient computer.
 61. A computing device as in claim 42 furtherincluding: providing a user interface that allows a user to drag apointing device across a selected part of said web page's layout shownon said screen at a first scale factor; and responding to such a drag byperforming a zoom-to-fit displaying of said selected part of the webpage layout at a second scale factor selected to cause said selectedpart of said web page layout to have a size that fits the size of saidscreen.
 62. A computing device as in claim 61 wherein: the userinterface that allows a user to drag a pointing device across a selectedpart of the web page layout responds to such a drag that extends acrossa boundary associated with a given edge of said screen by scrolling,onto said screen, across said given screen edge, portions of the webpage layout previously not shown on the screen at said first scalefactor, so as to allow said drag to select as said selected part of theweb page layout a part that was either too large or not properlypositioned to fit entirely within said screen when the drag firststarted; and said responding to such a drag performs said zoom-to-fitdisplaying for the part of the web page layout selected by such a drag.63. A computing device as in claim 42 further including: providing auser interface that allows a user to click a pointing device on aselected part of said web page's layout shown on said screen at a firstscale factor; and responding to such a click by performing a displayingof said selected part of the web page layout at a second scale factorthat causes said selected part to be shown at a larger size.
 64. Acomputing device as in claim 42 further including: providing a userinterface that allows a user to drag a pointing device across a part ofsaid web page's layout shown on said screen at a first of said selectedscale factor; and responding to such a drag that extends across aboundary associated with a given edge of said screen by scrolling, ontosaid screen, across said given screen edge, portions of the web pagelayout previously not shown on the screen at said first scale factor.65. A computing device as in claim 42 further including: responding to apress of a pointing device, made at a first layout position relative toa first portion of the web page layout displayed on said screen at afirst scale factor, by replacing all or part of the display of saidfirst layout portion with a display of a second, smaller portion of saidweb page layout, which includes said first position, at a second scalefactor that causes said smaller portion to be shown at a larger size;responding to a subsequent releases of said press, made at a selectedposition relative to the layout shown at said second scale factor, by:acting as if a mouse click had occurred at said selected positionrelative to said web page layout; and replacing the display of saidsmaller portion on said screen with a display of the web page layout atsaid first scale factor.
 66. A computing device as in claim 65 whereinsaid replacement of all or part of the display of said first portion ofsaid web page layout with a display of said smaller portion of saidlayout during the press of said pointing device replaces all of thedisplay of said first portion of said layout.
 67. A computing device asin claim 65 further including displaying a cursor that indicates theposition of the pointing device relative to the portion of said web pagelayout displayed at said second scale factor during said press, toinform a user of the location that would be treated as said selectedposition if the pointing device were released at its current location.68. A computing device as in claim 67 wherein: said display screen is atouch screen display; and said cursor is displayed above the point atwhich the screen is being touched by a pointing device so the cursor canbe seen over that pointing device.
 69. A computing device as in claim 65wherein said first layout position, which corresponds to the layoutposition of said pointing device at the time of said press, hassubstantially the same screen position in said display at said secondscale factor made in response to said press as it did in the display atsaid first scale factor at the time said press was made.
 70. A computingdevice as in claim 65 further including responding to movement of thepointing device during said press that extends across a boundaryassociated with a given edge of said screen by scrolling, onto saidscreen, across said given screen edge, portions of the web page layoutpreviously not shown on the screen at said second scale factor, so as toallow said movement to select as said selected position relative to thelayout a position that was not shown on said screen at said second scalewhen said movement during the press first started.
 71. A computingdevice as in claim 42 further including: performing a differentdisplaying of a given portion of said laid out web page that is similarto one of said displayings performed for said at least two differentscale factors, except that said different displaying: is performed for azoomed-out scale factor; and represents said one or more single linestring with a greeked bitmap that indicates the size and location ofsaid string in said layout.
 72. A computing device comprising: one ormore memory devices for storing information, including programminginformation; one or more processors for processing information inresponse to said programming information; one or more input devices forreceiving inputs from a user that can be supplied to one or more of saidprocessors; a display screen on which information can be shown to a userunder control of said one or more processors; wherein said programminginformation includes programming for causing said computing device,under control of said one or more processors, to perform the followingfunctions: accessing a web page's content, including one or more imagesand one or more strings of displayable text; laying out the web page fordisplay at a given virtual screen resolution having a given horizontaland vertical pixel resolution so as to determine a layout position foreach of said images and each portion of one of said strings that is tobe displayed on a separate line, with said layout positions beingdetermined in a layout space having a virtual pixel width equal to thelarger of (a) a minimum width required by the contents of the web page,if such a minimum width exists, or (b) the horizontal resolution of thevirtual screen resolution, which ever is larger, said laying outincluding: treating said images and displayable characters in saiddisplayable text as having respective layout sizes in said layout space;flowing displayable characters of said strings of across lineboundaries, based on the layout size of said displayable characters, bybreaking portions of strings that cross a line boundary into separatesingle line strings, each of which fits on a single line in said layoutspace; and displaying at least a portion of said laid out web page in adisplay shown on a display screen at a given scale factor, including:displaying both said images and single line character strings atlocations in said display corresponding to the positions at which theyhave been laid out in said layout space, scaled as a function of saidgiven scale factor; representing each of said images in said display bya corresponding bitmap that has a size relative to the image's layoutsize determined as a function of said given scale factor; representing agiven single line strings by an image composed from a plurality ofseparate font bitmaps representing the characters in said string, wherethe image of an individual character of said string has a pixel sizerelative to the character's layout size determined as a function of saidgiven scale factor; performing said layout and displaying of said webpage at each of at least two different virtual screen resolutions;wherein: the layout performed at a first, larger, one of said virtualscreen resolutions lays out said images and strings at a first,relatively small, set of respective sizes relative to said largervirtual screen resolution; the layout at a second, smaller, one of saidvirtual screen resolutions lays out said images and strings at a second,relatively large, set of respective sizes relative to said smallervirtual screen resolution; and the given scale factors used,respectively, in the displayings performed at the first and secondvirtual screen resolutions are such that the images and text appear atsmaller pixel sizes in the display of the layout produced using saidlarger virtual screen resolution and appear at larger pixel sizes in thedisplay of the layout produced using said smaller virtual screenresolution; and the layout at the smaller virtual screen resolutionmakes text lines shorter relative to the size of fonts shown on thoselines.
 73. A computing device as in claim 72 wherein: said displayingsat said different virtual screen resolutions are performed on a clientcomputer system; the client computer system requests said web page froma remote computer system over a computer network; said remote computersystem performs said accessing of the web page; said remote computersystem performs said laying out of said web page at each of said virtualscreen resolutions; said remote computer system downloads arepresentation of said images, strings, and layout positions over saidcomputer network to said client computer system for each of said virtualscreen resolutions; and said client computer system performs saiddisplaying of said images and strings laid out at each of said virtualscreen resolutions by drawing said images, and single line strings atrelative positions and sizes on said screen corresponding to those insaid layouts performed at each of said virtual screen resolutions onsaid remote computer system.
 74. A computing device as in claim 73wherein said image composed from a plurality of separate fonts bitmapsthat represents a given single line string is composed by said clientcomputer system for the layouts performed at each of said virtual screenresolutions from font bitmaps corresponding to the characters of saidstrings.
 75. A computing device as in claim 72 wherein: at least in thedisplaying performed for the layout at one of said virtual screenresolutions, one or more of said single line strings are represented ata font size of 10 pixels per em or less and have individual charactersrepresented by anti-aliased font bitmaps that assign a color value to agiven screen pixel as a graded function of a coverage value representingthe percent of the given pixel that is covered by a character shapebeing represented by the font bitmap; and the shape and pixel alignmentof a character represented by such a font bitmap has been selected toincrease the degree of alignment of edges of the character shape withpixel boundaries of the font bitmap as a function of the font size ofeach such a font bitmap.
 76. A computing device as in claim 75 wherein:the display screen on which displays are drawn has pixels comprised of agiven arrangement of separately-addressable, differently-coloredsubpixels; the anti-aliased font bitmaps used to represent said textstrings at 10 pixels per em or less are subpixel-optimized bitmaps thatassign a luminosity value to each given subpixel of said screen as afunction of: a coverage value representing the percent of the givensubpixel that is covered by a character shape being represented by thefont bitmap; in the case of at least some subpixels of said fontbitmaps, a color balancing distribution of a percent of a givensubpixel's coverage value from said coverage value to coverage values ofnearby subpixels, including subpixels of different color, made to aprevent color imbalance that would otherwise result from the differencebetween the given subpixel's coverage value and the coverage values of agiven set of one or more nearby subpixels of different colors; and inthe case of at least some subpixels of said font bitmaps, such colorbalancing distributions to a given subpixel's coverage value from one ormore nearby subpixels.
 77. A computing device as in claim 76 whereinsaid color balancing distributions only distribute portions of asubpixel's coverage value that causes color imbalance within the wholepixel of which it is part.
 78. A computing device as in claim 75wherein: said anti-aliased font bitmaps include small font bitmapshaving a small font size of eight pixels per em or less; and the shapeand pixel alignment of characters represented in said small font bitmapshave been selected as a function of said small font size to increase thedegree of alignment of edges of the character shape with pixelboundaries of the small font bitmap.
 79. A computing device as in claim78 wherein the font bitmaps of said small font size represent a majorityof characters of the Roman alphabet within an advance width of 4 pixelcolumns or less.
 80. A computing device as in claim 79 wherein the fontbitmaps of said small font size represent a majority of lowercaseletters with an x-height greater than 4 pixels.
 81. A computing deviceas in claim 72 wherein: said display screen has pixels each comprised ofa given arrangement of separately-addressable, differently-colored,differently-positioned subpixels; and the bitmap used to represent agiven image, accessed as part of a web page, in said display of aportion of the layout performed at one of said virtual screenresolutions is a subpixel-optimized image that: is scaled relative tothe given accessed imaged as a function of said virtual screenresolution; and assigns a luminosity to each differently-coloredsubpixel in the display of such an image as a function of the amount ofluminosity of the given subpixel's color in a source image window in thegiven accessed image that is associated with the given subpixel; wherethe source image window associated with each given subpixel has aposition relative to the accessed image that corresponds to the positionof the given subpixel relative to the subpixel-optimized image, suchthat the position of the source image windows associated with differentsubpixels of a given pixel varies in correspondence with the differentpositions of such subpixels relative to said given pixel.
 82. Acomputing device as in claim 81 wherein: the bitmaps used to represent agiven accessed image in said displays produced using each of said twodifferent virtual screen resolutions are two differentsubpixel-optimized images; and these two different subpixel optimizedimages assigns luminosity values to subpixels based on source imagewindows that have different sizes and positions relative to the givenaccessed image.